rcu: Userspace RCU extended QS selftest
authorFrederic Weisbecker <[email protected]>
Wed, 11 Jul 2012 18:26:40 +0000 (20:26 +0200)
committerFrederic Weisbecker <[email protected]>
Wed, 26 Sep 2012 13:47:16 +0000 (15:47 +0200)
Provide a config option that enables the userspace
RCU extended quiescent state on every CPUs by default.

This is for testing purpose.

Signed-off-by: Frederic Weisbecker <[email protected]>
Cc: Alessio Igor Bogani <[email protected]>
Cc: Andrew Morton <[email protected]>
Cc: Avi Kivity <[email protected]>
Cc: Chris Metcalf <[email protected]>
Cc: Christoph Lameter <[email protected]>
Cc: Geoff Levand <[email protected]>
Cc: Gilad Ben Yossef <[email protected]>
Cc: Hakan Akkan <[email protected]>
Cc: H. Peter Anvin <[email protected]>
Cc: Ingo Molnar <[email protected]>
Cc: Josh Triplett <[email protected]>
Cc: Kevin Hilman <[email protected]>
Cc: Max Krasnyansky <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: Stephen Hemminger <[email protected]>
Cc: Steven Rostedt <[email protected]>
Cc: Sven-Thorsten Dietrich <[email protected]>
Cc: Thomas Gleixner <[email protected]>
Signed-off-by: Paul E. McKenney <[email protected]>
Reviewed-by: Josh Triplett <[email protected]>
init/Kconfig
kernel/rcutree.c

index f6a1830165cea833dd5e674e14fefad4ec5469a3..c26b8a1d2b576f8b0286168bbed0647a7ded67a1 100644 (file)
@@ -451,6 +451,14 @@ config RCU_USER_QS
          excluded from the global RCU state machine and thus doesn't
          to keep the timer tick on for RCU.
 
+config RCU_USER_QS_FORCE
+       bool "Force userspace extended QS by default"
+       depends on RCU_USER_QS
+       help
+         Set the hooks in user/kernel boundaries by default in order to
+         test this feature that treats userspace as an extended quiescent
+         state until we have a real user like a full adaptive nohz option.
+
 config RCU_FANOUT
        int "Tree-based hierarchical RCU fanout value"
        range 2 64 if 64BIT
index d2e74c8d4b0e5330d1f4f422cf876041f70688bb..812d04b6b395055a7298dae5b59f525a92634d76 100644 (file)
@@ -206,7 +206,7 @@ EXPORT_SYMBOL_GPL(rcu_note_context_switch);
 DEFINE_PER_CPU(struct rcu_dynticks, rcu_dynticks) = {
        .dynticks_nesting = DYNTICK_TASK_EXIT_IDLE,
        .dynticks = ATOMIC_INIT(1),
-#ifdef CONFIG_RCU_USER_QS
+#if defined(CONFIG_RCU_USER_QS) && !defined(CONFIG_RCU_USER_QS_FORCE)
        .ignore_user_qs = true,
 #endif
 };