linux/include
KAMEZAWA Hiroyuki 34e55232e5 mm: avoid false sharing of mm_counter
Considering the nature of per mm stats, it's the shared object among
threads and can be a cache-miss point in the page fault path.

This patch adds per-thread cache for mm_counter.  RSS value will be
counted into a struct in task_struct and synchronized with mm's one at
events.

Now, in this patch, the event is the number of calls to handle_mm_fault.
Per-thread value is added to mm at each 64 calls.

 rough estimation with small benchmark on parallel thread (2threads) shows
 [before]
     4.5 cache-miss/faults
 [after]
     4.0 cache-miss/faults
 Anyway, the most contended object is mmap_sem if the number of threads grows.

[akpm@linux-foundation.org: coding-style fixes]
Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: Minchan Kim <minchan.kim@gmail.com>
Cc: Christoph Lameter <cl@linux-foundation.org>
Cc: Lee Schermerhorn <lee.schermerhorn@hp.com>
Cc: David Rientjes <rientjes@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2010-03-06 11:26:24 -08:00
..
acpi Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu 2010-03-03 07:34:18 -08:00
asm-generic local_t: Remove cpu_local_xx macros 2010-01-05 15:34:49 +09:00
crypto crypto: md5 - Add export support 2010-01-17 21:55:31 +11:00
drm Merge branch 'drm-radeon-testing' of /ssd/git/drm-radeon-next into drm-next-stage 2010-03-01 16:08:57 +10:00
keys
linux mm: avoid false sharing of mm_counter 2010-03-06 11:26:24 -08:00
math-emu
media V4L/DVB: tuner-types: Add Sony BTF-Pxn01Z tuner type used on GigaPocket cards 2010-02-26 15:11:07 -03:00
mtd
net 9P2010.L handshake: Remove "dotu" variable 2010-03-05 15:04:42 -06:00
pcmcia Merge branch 'master' of /home/davem/src/GIT/linux-2.6/ 2010-02-28 19:23:06 -08:00
rdma Merge branch 'misc' into for-next 2010-03-01 23:52:31 -08:00
rxrpc
scsi [SCSI] scsi_transport_sas: add support for transport layer retries (TLR) 2010-02-08 17:15:19 -06:00
sound Merge branch 'topic/asoc' into for-linus 2010-03-01 12:38:59 +01:00
trace Merge branch 'kvm-updates/2.6.34' of git://git.kernel.org/pub/scm/virt/kvm/kvm 2010-03-05 13:12:34 -08:00
video video: sh_mobile_lcdcfb: Add wait for vsync. 2010-02-16 13:30:27 +09:00
xen
Kbuild