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
..
2010-02-07 03:06:21 -05:00
2010-01-14 09:05:42 -05:00
2010-02-26 12:15:54 -06:00
2010-01-19 22:36:06 -06:00
2010-02-19 03:35:12 -05:00
2010-01-11 14:30:09 +01:00
2010-03-06 11:26:23 -08:00
2009-12-16 07:20:18 -08:00
2010-01-26 22:22:26 -05:00
2009-12-16 07:20:13 -08:00
2009-12-22 12:27:34 -05:00
2009-09-24 07:21:03 -07:00
2010-03-03 14:13:08 -05:00
2009-12-17 04:52:13 -05:00
2010-03-06 11:26:24 -08:00
2010-02-07 10:26:01 -08:00
2010-03-03 14:07:59 -05:00
2009-12-17 10:51:40 -05:00
2009-10-04 15:05:10 -07:00
2010-03-03 14:08:00 -05:00
2009-12-16 12:16:49 -05:00