linux-next/Documentation
Kemi Wang 4518085e12 mm, sysctl: make NUMA stats configurable
This is the second step which introduces a tunable interface that allow
numa stats configurable for optimizing zone_statistics(), as suggested
by Dave Hansen and Ying Huang.

=========================================================================

When page allocation performance becomes a bottleneck and you can
tolerate some possible tool breakage and decreased numa counter
precision, you can do:

	echo 0 > /proc/sys/vm/numa_stat

In this case, numa counter update is ignored.  We can see about
*4.8%*(185->176) drop of cpu cycles per single page allocation and
reclaim on Jesper's page_bench01 (single thread) and *8.1%*(343->315)
drop of cpu cycles per single page allocation and reclaim on Jesper's
page_bench03 (88 threads) running on a 2-Socket Broadwell-based server
(88 threads, 126G memory).

Benchmark link provided by Jesper D Brouer (increase loop times to
10000000):

  https://github.com/netoptimizer/prototype-kernel/tree/master/kernel/mm/bench

=========================================================================

When page allocation performance is not a bottleneck and you want all
tooling to work, you can do:

	echo 1 > /proc/sys/vm/numa_stat

This is system default setting.

Many thanks to Michal Hocko, Dave Hansen, Ying Huang and Vlastimil Babka
for comments to help improve the original patch.

[keescook@chromium.org: make sure mutex is a global static]
  Link: http://lkml.kernel.org/r/20171107213809.GA4314@beast
Link: http://lkml.kernel.org/r/1508290927-8518-1-git-send-email-kemi.wang@intel.com
Signed-off-by: Kemi Wang <kemi.wang@intel.com>
Signed-off-by: Kees Cook <keescook@chromium.org>
Reported-by: Jesper Dangaard Brouer <brouer@redhat.com>
Suggested-by: Dave Hansen <dave.hansen@intel.com>
Suggested-by: Ying Huang <ying.huang@intel.com>
Acked-by: Vlastimil Babka <vbabka@suse.cz>
Acked-by: Michal Hocko <mhocko@suse.com>
Cc: "Luis R . Rodriguez" <mcgrof@kernel.org>
Cc: Kees Cook <keescook@chromium.org>
Cc: Jonathan Corbet <corbet@lwn.net>
Cc: Mel Gorman <mgorman@techsingularity.net>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Christopher Lameter <cl@linux.com>
Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Cc: Andrey Ryabinin <aryabinin@virtuozzo.com>
Cc: Tim Chen <tim.c.chen@intel.com>
Cc: Andi Kleen <andi.kleen@intel.com>
Cc: Aaron Lu <aaron.lu@intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2017-11-15 18:21:07 -08:00
..
2017-11-15 18:21:05 -08:00
2017-11-15 10:56:56 -08:00
2017-11-10 19:53:25 -07:00
2017-09-07 21:11:05 -07:00
2017-11-15 18:21:05 -08:00
2017-11-15 10:56:56 -08:00
2017-11-14 16:23:44 -08:00
2017-11-14 18:25:40 -08:00
2017-11-01 21:32:25 -07:00
2017-05-02 17:34:32 -07:00
2017-07-07 13:55:45 -07:00
2017-03-31 12:55:11 +02:00
2017-05-16 08:44:18 -03:00
2017-11-14 18:01:46 -08:00
2017-09-26 14:58:23 -06:00
2017-09-07 18:22:04 +02:00
2017-03-17 15:10:49 +09:00
2017-07-07 14:04:47 -07:00
2017-07-14 13:51:29 -06:00
2017-08-19 11:02:53 -07:00
2017-07-14 13:51:34 -06:00
2017-07-14 13:51:40 -06:00
2017-07-14 13:51:42 -06:00
2017-07-14 13:51:43 -06:00
2017-07-14 13:51:43 -06:00
2017-07-14 13:51:45 -06:00
2017-07-14 13:51:45 -06:00
2017-07-14 13:51:46 -06:00
2017-07-14 13:57:58 -06:00
2017-07-14 13:57:59 -06:00
2017-07-06 08:23:30 +02:00
2017-07-07 13:14:14 +02:00
2017-07-14 13:58:04 -06:00
2017-07-14 13:58:08 -06:00
2017-07-14 13:58:14 -06:00
2017-07-14 13:58:10 -06:00
2017-07-14 13:58:11 -06:00