summaryrefslogtreecommitdiff
path: root/ipc
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2013-04-30 15:27:38 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2013-04-30 17:04:04 -0700
commit39732ca5af4b09f4db561149041ddad7211019a5 (patch)
tree654d9dc83e3884358e02dd7d765a22423334840d /ipc
parent4a22f16636259f503847b0805e04824171b270fc (diff)
downloadlinux-3.10-39732ca5af4b09f4db561149041ddad7211019a5.tar.gz
linux-3.10-39732ca5af4b09f4db561149041ddad7211019a5.tar.bz2
linux-3.10-39732ca5af4b09f4db561149041ddad7211019a5.zip
epoll: trim epitem by one cache line
It is common for epoll users to have thousands of epitems, so saving a cache line on every allocation leads to large memory savings. Since epitem allocations are cache-aligned, reducing sizeof(struct epitem) from 136 bytes to 128 bytes will allow it to squeeze under a cache line boundary on x86_64. Via /sys/kernel/slab/eventpoll_epi, I see the following changes on my x86_64 Core2 Duo (which has 64-byte cache alignment): object_size : 192 => 128 objs_per_slab: 21 => 32 Also, add a BUILD_BUG_ON() to check for future accidental breakage. [akpm@linux-foundation.org: use __packed, for all architectures] Signed-off-by: Eric Wong <normalperson@yhbt.net> Cc: Davide Libenzi <davidel@xmailserver.org> Cc: Al Viro <viro@ZenIV.linux.org.uk> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'ipc')
0 files changed, 0 insertions, 0 deletions