aboutsummaryrefslogtreecommitdiffstats
path: root/init
diff options
context:
space:
mode:
authorFrederic Weisbecker2012-11-27 12:33:25 -0600
committerPaul E. McKenney2012-11-30 13:40:07 -0600
commit91d1aa43d30505b0b825db8898ffc80a8eca96c7 (patch)
tree911636f846d800c8a44efd540842dc726ec7c191 /init
parent4e79752c25ec221ac1e28f8875b539ed7631a0db (diff)
downloadkernel-audio-91d1aa43d30505b0b825db8898ffc80a8eca96c7.tar.gz
kernel-audio-91d1aa43d30505b0b825db8898ffc80a8eca96c7.tar.xz
kernel-audio-91d1aa43d30505b0b825db8898ffc80a8eca96c7.zip
context_tracking: New context tracking susbsystem
Create a new subsystem that probes on kernel boundaries to keep track of the transitions between level contexts with two basic initial contexts: user or kernel. This is an abstraction of some RCU code that use such tracking to implement its userspace extended quiescent state. We need to pull this up from RCU into this new level of indirection because this tracking is also going to be used to implement an "on demand" generic virtual cputime accounting. A necessary step to shutdown the tick while still accounting the cputime. Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: H. Peter Anvin <hpa@zytor.com> Cc: Ingo Molnar <mingo@kernel.org> Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Steven Rostedt <rostedt@goodmis.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Li Zhong <zhong@linux.vnet.ibm.com> Cc: Gilad Ben-Yossef <gilad@benyossef.com> Reviewed-by: Steven Rostedt <rostedt@goodmis.org> [ paulmck: fix whitespace error and email address. ] Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Diffstat (limited to 'init')
-rw-r--r--init/Kconfig28
1 files changed, 14 insertions, 14 deletions
diff --git a/init/Kconfig b/init/Kconfig
index 5ac6ee094225..2054e048bb98 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -486,9 +486,13 @@ config PREEMPT_RCU
486 This option enables preemptible-RCU code that is common between 486 This option enables preemptible-RCU code that is common between
487 the TREE_PREEMPT_RCU and TINY_PREEMPT_RCU implementations. 487 the TREE_PREEMPT_RCU and TINY_PREEMPT_RCU implementations.
488 488
489config CONTEXT_TRACKING
490 bool
491
489config RCU_USER_QS 492config RCU_USER_QS
490 bool "Consider userspace as in RCU extended quiescent state" 493 bool "Consider userspace as in RCU extended quiescent state"
491 depends on HAVE_RCU_USER_QS && SMP 494 depends on HAVE_CONTEXT_TRACKING && SMP
495 select CONTEXT_TRACKING
492 help 496 help
493 This option sets hooks on kernel / userspace boundaries and 497 This option sets hooks on kernel / userspace boundaries and
494 puts RCU in extended quiescent state when the CPU runs in 498 puts RCU in extended quiescent state when the CPU runs in
@@ -497,24 +501,20 @@ config RCU_USER_QS
497 try to keep the timer tick on for RCU. 501 try to keep the timer tick on for RCU.
498 502
499 Unless you want to hack and help the development of the full 503 Unless you want to hack and help the development of the full
500 tickless feature, you shouldn't enable this option. It also 504 dynticks mode, you shouldn't enable this option. It also
501 adds unnecessary overhead. 505 adds unnecessary overhead.
502 506
503 If unsure say N 507 If unsure say N
504 508
505config RCU_USER_QS_FORCE 509config CONTEXT_TRACKING_FORCE
506 bool "Force userspace extended QS by default" 510 bool "Force context tracking"
507 depends on RCU_USER_QS 511 depends on CONTEXT_TRACKING
508 help 512 help
509 Set the hooks in user/kernel boundaries by default in order to 513 Probe on user/kernel boundaries by default in order to
510 test this feature that treats userspace as an extended quiescent 514 test the features that rely on it such as userspace RCU extended
511 state until we have a real user like a full adaptive nohz option. 515 quiescent states.
512 516 This test is there for debugging until we have a real user like the
513 Unless you want to hack and help the development of the full 517 full dynticks mode.
514 tickless feature, you shouldn't enable this option. It adds
515 unnecessary overhead.
516
517 If unsure say N
518 518
519config RCU_FANOUT 519config RCU_FANOUT
520 int "Tree-based hierarchical RCU fanout value" 520 int "Tree-based hierarchical RCU fanout value"