diff options
author | Frederic Weisbecker <fweisbec@gmail.com> | 2012-07-11 14:26:30 -0400 |
---|---|---|
committer | Frederic Weisbecker <fweisbec@gmail.com> | 2012-09-26 09:44:04 -0400 |
commit | 2b1d5024e17be459aa6385763ca3faa8f01c52d9 (patch) | |
tree | 45d1ea5872eea69b7f0443086d98ddbcbc221b94 /init | |
parent | 9a0c6fef423528ba5b62aa31b29aabf689eb8f70 (diff) |
rcu: Settle config for userspace extended quiescent state
Create a new config option under the RCU menu that put
CPUs under RCU extended quiescent state (as in dynticks
idle mode) when they run in userspace. This require
some contribution from architectures to hook into kernel
and userspace boundaries.
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Alessio Igor Bogani <abogani@kernel.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Avi Kivity <avi@redhat.com>
Cc: Chris Metcalf <cmetcalf@tilera.com>
Cc: Christoph Lameter <cl@linux.com>
Cc: Geoff Levand <geoff@infradead.org>
Cc: Gilad Ben Yossef <gilad@benyossef.com>
Cc: Hakan Akkan <hakanakkan@gmail.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Josh Triplett <josh@joshtriplett.org>
Cc: Kevin Hilman <khilman@ti.com>
Cc: Max Krasnyansky <maxk@qualcomm.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephen Hemminger <shemminger@vyatta.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Sven-Thorsten Dietrich <thebigcorporation@gmail.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Reviewed-by: Josh Triplett <josh@joshtriplett.org>
Diffstat (limited to 'init')
-rw-r--r-- | init/Kconfig | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/init/Kconfig b/init/Kconfig index af6c7f8ba019..f6a1830165ce 100644 --- a/init/Kconfig +++ b/init/Kconfig | |||
@@ -441,6 +441,16 @@ config PREEMPT_RCU | |||
441 | This option enables preemptible-RCU code that is common between | 441 | This option enables preemptible-RCU code that is common between |
442 | the TREE_PREEMPT_RCU and TINY_PREEMPT_RCU implementations. | 442 | the TREE_PREEMPT_RCU and TINY_PREEMPT_RCU implementations. |
443 | 443 | ||
444 | config RCU_USER_QS | ||
445 | bool "Consider userspace as in RCU extended quiescent state" | ||
446 | depends on HAVE_RCU_USER_QS && SMP | ||
447 | help | ||
448 | This option sets hooks on kernel / userspace boundaries and | ||
449 | puts RCU in extended quiescent state when the CPU runs in | ||
450 | userspace. It means that when a CPU runs in userspace, it is | ||
451 | excluded from the global RCU state machine and thus doesn't | ||
452 | to keep the timer tick on for RCU. | ||
453 | |||
444 | config RCU_FANOUT | 454 | config RCU_FANOUT |
445 | int "Tree-based hierarchical RCU fanout value" | 455 | int "Tree-based hierarchical RCU fanout value" |
446 | range 2 64 if 64BIT | 456 | range 2 64 if 64BIT |