diff options
author | Manfred Spraul <manfred@colorfullife.com> | 2013-07-08 16:01:25 -0700 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-10-18 07:45:47 -0700 |
commit | bf6830ad689a462a61c7e9191dc44fc45e205165 (patch) | |
tree | 779ca042ea97892e3804ee78a4c9bb530b954cb1 /include/linux/sem.h | |
parent | e5639c5288c125607fc45fb727c72a97d01cd868 (diff) | |
download | linux-3.10-bf6830ad689a462a61c7e9191dc44fc45e205165.tar.gz linux-3.10-bf6830ad689a462a61c7e9191dc44fc45e205165.tar.bz2 linux-3.10-bf6830ad689a462a61c7e9191dc44fc45e205165.zip |
ipc/sem.c: replace shared sem_otime with per-semaphore value
commit d12e1e50e47e0900dbbf52237b7e171f4f15ea1e upstream.
sem_otime contains the time of the last semaphore operation that
completed successfully. Every operation updates this value, thus access
from multiple cpus can cause thrashing.
Therefore the patch replaces the variable with a per-semaphore variable.
The per-array sem_otime is only calculated when required.
No performance improvement on a single-socket i3 - only important for
larger systems.
Signed-off-by: Manfred Spraul <manfred@colorfullife.com>
Cc: Rik van Riel <riel@redhat.com>
Cc: Davidlohr Bueso <davidlohr.bueso@hp.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Mike Galbraith <efault@gmx.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'include/linux/sem.h')
-rw-r--r-- | include/linux/sem.h | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/include/linux/sem.h b/include/linux/sem.h index 55e17f68d25..976ce3a19f1 100644 --- a/include/linux/sem.h +++ b/include/linux/sem.h @@ -12,7 +12,6 @@ struct task_struct; struct sem_array { struct kern_ipc_perm ____cacheline_aligned_in_smp sem_perm; /* permissions .. see ipc.h */ - time_t sem_otime; /* last semop time */ time_t sem_ctime; /* last change time */ struct sem *sem_base; /* ptr to first semaphore in array */ struct list_head pending_alter; /* pending operations */ |