context_tracking: Remove full dynticks' hacky dependency on wide context tracking
authorFrederic Weisbecker <fweisbec@gmail.com>
Wed, 24 Jul 2013 19:59:29 +0000 (21:59 +0200)
committerFrederic Weisbecker <fweisbec@gmail.com>
Mon, 12 Aug 2013 22:54:34 +0000 (00:54 +0200)
Now that the full dynticks subsystem only enables the context tracking
on full dynticks CPUs, lets remove the dependency on CONTEXT_TRACKING_FORCE

This dependency was a hack to enable the context tracking widely for the
full dynticks susbsystem until the latter becomes able to enable it in a
more CPU-finegrained fashion.

Now CONTEXT_TRACKING_FORCE only stands for testing on archs that
work on support for the context tracking while full dynticks can't be
used yet due to unmet dependencies. It simulates a system where all CPUs
are full dynticks so that RCU user extended quiescent states and dynticks
cputime accounting can be tested on the given arch.

Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Li Zhong <zhong@linux.vnet.ibm.com>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Kevin Hilman <khilman@linaro.org>
init/Kconfig
kernel/time/Kconfig

index 247084be059030162838199c953ebac6409f7e01..ffbf5d788bf3d8b62f002ace1168b7446d20feb8 100644 (file)
@@ -527,13 +527,29 @@ config RCU_USER_QS
 config CONTEXT_TRACKING_FORCE
        bool "Force context tracking"
        depends on CONTEXT_TRACKING
-       default CONTEXT_TRACKING
+       default y if !NO_HZ_FULL
        help
-         Probe on user/kernel boundaries by default in order to
-         test the features that rely on it such as userspace RCU extended
-         quiescent states.
-         This test is there for debugging until we have a real user like the
-         full dynticks mode.
+         The major pre-requirement for full dynticks to work is to
+         support the context tracking subsystem. But there are also
+         other dependencies to provide in order to make the full
+         dynticks working.
+
+         This option stands for testing when an arch implements the
+         context tracking backend but doesn't yet fullfill all the
+         requirements to make the full dynticks feature working.
+         Without the full dynticks, there is no way to test the support
+         for context tracking and the subsystems that rely on it: RCU
+         userspace extended quiescent state and tickless cputime
+         accounting. This option copes with the absence of the full
+         dynticks subsystem by forcing the context tracking on all
+         CPUs in the system.
+
+         Say Y only if you're working on the developpement of an
+         architecture backend for the context tracking.
+
+         Say N otherwise, this option brings an overhead that you
+         don't want in production.
+
 
 config RCU_FANOUT
        int "Tree-based hierarchical RCU fanout value"
index 70f27e89012b29d18b4aeb9c6e5c367d1b3955a5..747bbc70f53ba4a6eb0d6943bbf8ff2a36897afe 100644 (file)
@@ -105,7 +105,6 @@ config NO_HZ_FULL
        select RCU_USER_QS
        select RCU_NOCB_CPU
        select VIRT_CPU_ACCOUNTING_GEN
-       select CONTEXT_TRACKING_FORCE
        select IRQ_WORK
        help
         Adaptively try to shutdown the tick whenever possible, even when