Add information about cost, type of optimizations, etc.,
so that the user knows what to expect.

Cc: Linus Torvalds <torva...@linux-foundation.org>
Cc: Andrew Morton <a...@linux-foundation.org>
Cc: Peter Zijlstra <a.p.zijls...@chello.nl>
Cc: Andrea Arcangeli <aarca...@redhat.com>
Cc: Rik van Riel <r...@redhat.com>
Cc: Mel Gorman <mgor...@suse.de>
Cc: Hugh Dickins <hu...@google.com>
Signed-off-by: Ingo Molnar <mi...@kernel.org>
---
 init/Kconfig | 33 +++++++++++++++++++++++++++++++--
 1 file changed, 31 insertions(+), 2 deletions(-)

diff --git a/init/Kconfig b/init/Kconfig
index 37cd8d6..018c8af 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -721,13 +721,42 @@ config ARCH_USES_NUMA_PROT_NONE
        depends on NUMA_BALANCING
 
 config NUMA_BALANCING
-       bool "Memory placement aware NUMA scheduler"
+       bool "NUMA-optimizing scheduler"
        default n
        depends on ARCH_SUPPORTS_NUMA_BALANCING
        depends on !ARCH_WANT_NUMA_VARIABLE_LOCALITY
        depends on SMP && NUMA && MIGRATION
        help
-         This option adds support for automatic NUMA aware memory/task 
placement.
+         This option enables NUMA-aware, transparent, automatic
+         placement optimizations of memory, tasks and task groups.
+
+         The optimizations work by (transparently) runtime sampling the
+         workload sharing relationship between threads and processes
+         of long-run workloads, and scheduling them based on these
+         measured inter-task relationships (or the lack thereof).
+
+         ("Long-run" means several seconds of CPU runtime at least.)
+
+         Tasks that predominantly perform their own processing, without
+         interacting with other tasks much will be independently balanced
+         to a CPU and their working set memory will migrate to that CPU/node.
+
+         Tasks that share a lot of data with each other will be attempted to
+         be scheduled on as few nodes as possible, with their memory
+         following them there and being distributed between those nodes.
+
+         This optimization can improve the performance of long-run CPU-bound
+         workloads by 10% or more. The sampling and migration has a small
+         but nonzero cost, so if your NUMA workload is already perfectly
+         placed (for example by use of explicit CPU and memory bindings,
+         or because the stock scheduler does a good job already) then you
+         probably don't need this feature.
+
+         [ On non-NUMA systems this feature will not be active. You can query
+           whether your system is a NUMA system via looking at the output of
+           "numactl --hardware". ]
+
+         Say N if unsure.
 
 menuconfig CGROUPS
        boolean "Control Group support"
-- 
1.7.11.7

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to