summaryrefslogtreecommitdiffstats
path: root/kernel/cpu
diff options
context:
space:
mode:
authorManfred Spraul <manfred@colorfullife.com>2013-07-08 16:01:22 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2013-07-09 10:33:28 -0700
commitf5c936c0f267ec58641451cf8b8d39b4c207ee4d (patch)
tree714671efc570653a64e602b70524741b0a488907 /kernel/cpu
parent196aa0132fc7261f34b10ae1bfb44abc1bc69b3c (diff)
downloadlinux-f5c936c0f267ec58641451cf8b8d39b4c207ee4d.tar.gz
linux-f5c936c0f267ec58641451cf8b8d39b4c207ee4d.tar.bz2
linux-f5c936c0f267ec58641451cf8b8d39b4c207ee4d.zip
ipc/sem.c: cacheline align the semaphore structures
As now each semaphore has its own spinlock and parallel operations are possible, give each semaphore its own cacheline. On a i3 laptop, this gives up to 28% better performance: #semscale 10 | grep "interleave 2" - before: Cpus 1, interleave 2 delay 0: 36109234 in 10 secs Cpus 2, interleave 2 delay 0: 55276317 in 10 secs Cpus 3, interleave 2 delay 0: 62411025 in 10 secs Cpus 4, interleave 2 delay 0: 81963928 in 10 secs -after: Cpus 1, interleave 2 delay 0: 35527306 in 10 secs Cpus 2, interleave 2 delay 0: 70922909 in 10 secs <<< + 28% Cpus 3, interleave 2 delay 0: 80518538 in 10 secs Cpus 4, interleave 2 delay 0: 89115148 in 10 secs <<< + 8.7% i3, with 2 cores and with hyperthreading enabled. Interleave 2 in order use first the full cores. HT partially hides the delay from cacheline trashing, thus the improvement is "only" 8.7% if 4 threads are running. 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>
Diffstat (limited to 'kernel/cpu')
0 files changed, 0 insertions, 0 deletions