]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
nohz_full: Add Kconfig parameter for scalable detection of all-idle state
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Fri, 21 Jun 2013 18:08:45 +0000 (11:08 -0700)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Mon, 15 Jul 2013 23:58:35 +0000 (16:58 -0700)
At least one CPU must keep the scheduling-clock tick running for
timekeeping purposes whenever there is a non-idle CPU.  However, with
the new nohz_full adaptive-idle machinery, it is difficult to distinguish
between all CPUs really being idle as opposed to all non-idle CPUs being
in adaptive-ticks mode.  This commit therefore adds a Kconfig parameter
as a first step towards enabling a scalable detection of full-system
idle state.

Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
kernel/time/Kconfig

index 70f27e89012b29d18b4aeb9c6e5c367d1b3955a5..a613c2a925182ce288bb4fe9611c41dab34e25c4 100644 (file)
@@ -134,6 +134,29 @@ config NO_HZ_FULL_ALL
         Note the boot CPU will still be kept outside the range to
         handle the timekeeping duty.
 
+config NO_HZ_FULL_SYSIDLE
+       bool "Detect full-system idle state for full dynticks system"
+       depends on NO_HZ_FULL
+       default n
+       help
+        At least one CPU must keep the scheduling-clock tick running
+        for timekeeping purposes whenever there is a non-idle CPU,
+        where "non-idle" includes CPUs with a single runnable task
+        in adaptive-idle mode.  Because the underlying adaptive-tick
+        support cannot distinguish between all CPUs being idle and
+        all CPUs each running a single task in adaptive-idle mode,
+        the underlying support simply ensures that there is always
+        a CPU handling the scheduling-clock tick, whether or not all
+        CPUs are idle.  This Kconfig option enables scalable detection
+        of the all-CPUs-idle state, thus allowing the scheduling-clock
+        tick to be disabled when all CPUs are idle.  Note that scalable
+        detection of the all-CPUs-idle state means that larger systems
+        will be slower to declare the all-CPUs-idle state.
+
+        Say Y if you would like to help debug all-CPUs-idle detection.
+
+        Say N if you are unsure.
+
 config NO_HZ
        bool "Old Idle dynticks config"
        depends on !ARCH_USES_GETTIMEOFFSET && GENERIC_CLOCKEVENTS