aboutsummaryrefslogtreecommitdiffstats
path: root/init
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2013-07-02 19:13:29 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2013-07-02 19:13:29 -0400
commitab3d681e9d41816f90836ea8fe235168d973207f (patch)
treec5210911fcb6023f4956a302ee1d4ce3a405aa0f /init
parent0c46d68d1930c8a58d0f291328b9759da754e599 (diff)
parentb1fe9987b78755719e8627d58409174ba00c24de (diff)
Merge branch 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull RCU updates from Ingo Molnar: "The major changes: - Simplify RCU's grace-period and callback processing based on the new numbering for callbacks. - Removal of TINY_PREEMPT_RCU in favor of TREE_PREEMPT_RCU for single-CPU low-latency systems. - SRCU-related changes and fixes. - Miscellaneous fixes, including converting a few remaining printk() calls to pr_*(). - Documentation updates" * 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (32 commits) rcu: Shrink TINY_RCU by reworking CPU-stall ifdefs rcu: Shrink TINY_RCU by moving exit_rcu() rcu: Remove TINY_PREEMPT_RCU tracing documentation rcu: Consolidate rcutiny_plugin.h ifdefs rcu: Remove rcu_preempt_note_context_switch() rcu: Remove the CONFIG_TINY_RCU ifdefs in rcutiny.h rcu: Remove check_cpu_stall_preempt() rcu: Simplify RCU_TINY RCU callback invocation rcu: Remove rcu_preempt_process_callbacks() rcu: Remove rcu_preempt_remove_callbacks() rcu: Remove rcu_preempt_check_callbacks() rcu: Remove show_tiny_preempt_stats() rcu: Remove TINY_PREEMPT_RCU powerpc,kvm: fix imbalance srcu_read_[un]lock() rcu: Remove srcu_read_lock_raw() and srcu_read_unlock_raw(). rcu: Apply Dave Jones's NOCB Kconfig help feedback rcu: Merge adjacent identical ifdefs rcu: Drive quiescent-state-forcing delay from HZ rcu: Remove "Experimental" flags kthread: Add kworker kthreads to OS-jitter documentation ...
Diffstat (limited to 'init')
-rw-r--r--init/Kconfig46
1 files changed, 27 insertions, 19 deletions
diff --git a/init/Kconfig b/init/Kconfig
index 1e825c299ea5..118895cc1f67 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -473,18 +473,10 @@ config TINY_RCU
473 is not required. This option greatly reduces the 473 is not required. This option greatly reduces the
474 memory footprint of RCU. 474 memory footprint of RCU.
475 475
476config TINY_PREEMPT_RCU
477 bool "Preemptible UP-only small-memory-footprint RCU"
478 depends on PREEMPT && !SMP
479 help
480 This option selects the RCU implementation that is designed
481 for real-time UP systems. This option greatly reduces the
482 memory footprint of RCU.
483
484endchoice 476endchoice
485 477
486config PREEMPT_RCU 478config PREEMPT_RCU
487 def_bool ( TREE_PREEMPT_RCU || TINY_PREEMPT_RCU ) 479 def_bool TREE_PREEMPT_RCU
488 help 480 help
489 This option enables preemptible-RCU code that is common between 481 This option enables preemptible-RCU code that is common between
490 the TREE_PREEMPT_RCU and TINY_PREEMPT_RCU implementations. 482 the TREE_PREEMPT_RCU and TINY_PREEMPT_RCU implementations.
@@ -670,7 +662,7 @@ config RCU_BOOST_DELAY
670 Accept the default if unsure. 662 Accept the default if unsure.
671 663
672config RCU_NOCB_CPU 664config RCU_NOCB_CPU
673 bool "Offload RCU callback processing from boot-selected CPUs (EXPERIMENTAL" 665 bool "Offload RCU callback processing from boot-selected CPUs"
674 depends on TREE_RCU || TREE_PREEMPT_RCU 666 depends on TREE_RCU || TREE_PREEMPT_RCU
675 default n 667 default n
676 help 668 help
@@ -696,9 +688,10 @@ choice
696 prompt "Build-forced no-CBs CPUs" 688 prompt "Build-forced no-CBs CPUs"
697 default RCU_NOCB_CPU_NONE 689 default RCU_NOCB_CPU_NONE
698 help 690 help
699 This option allows no-CBs CPUs to be specified at build time. 691 This option allows no-CBs CPUs (whose RCU callbacks are invoked
700 Additional no-CBs CPUs may be specified by the rcu_nocbs= 692 from kthreads rather than from softirq context) to be specified
701 boot parameter. 693 at build time. Additional no-CBs CPUs may be specified by
694 the rcu_nocbs= boot parameter.
702 695
703config RCU_NOCB_CPU_NONE 696config RCU_NOCB_CPU_NONE
704 bool "No build_forced no-CBs CPUs" 697 bool "No build_forced no-CBs CPUs"
@@ -706,25 +699,40 @@ config RCU_NOCB_CPU_NONE
706 help 699 help
707 This option does not force any of the CPUs to be no-CBs CPUs. 700 This option does not force any of the CPUs to be no-CBs CPUs.
708 Only CPUs designated by the rcu_nocbs= boot parameter will be 701 Only CPUs designated by the rcu_nocbs= boot parameter will be
709 no-CBs CPUs. 702 no-CBs CPUs, whose RCU callbacks will be invoked by per-CPU
703 kthreads whose names begin with "rcuo". All other CPUs will
704 invoke their own RCU callbacks in softirq context.
705
706 Select this option if you want to choose no-CBs CPUs at
707 boot time, for example, to allow testing of different no-CBs
708 configurations without having to rebuild the kernel each time.
710 709
711config RCU_NOCB_CPU_ZERO 710config RCU_NOCB_CPU_ZERO
712 bool "CPU 0 is a build_forced no-CBs CPU" 711 bool "CPU 0 is a build_forced no-CBs CPU"
713 depends on RCU_NOCB_CPU && !NO_HZ_FULL 712 depends on RCU_NOCB_CPU && !NO_HZ_FULL
714 help 713 help
715 This option forces CPU 0 to be a no-CBs CPU. Additional CPUs 714 This option forces CPU 0 to be a no-CBs CPU, so that its RCU
716 may be designated as no-CBs CPUs using the rcu_nocbs= boot 715 callbacks are invoked by a per-CPU kthread whose name begins
717 parameter will be no-CBs CPUs. 716 with "rcuo". Additional CPUs may be designated as no-CBs
717 CPUs using the rcu_nocbs= boot parameter will be no-CBs CPUs.
718 All other CPUs will invoke their own RCU callbacks in softirq
719 context.
718 720
719 Select this if CPU 0 needs to be a no-CBs CPU for real-time 721 Select this if CPU 0 needs to be a no-CBs CPU for real-time
720 or energy-efficiency reasons. 722 or energy-efficiency reasons, but the real reason it exists
723 is to ensure that randconfig testing covers mixed systems.
721 724
722config RCU_NOCB_CPU_ALL 725config RCU_NOCB_CPU_ALL
723 bool "All CPUs are build_forced no-CBs CPUs" 726 bool "All CPUs are build_forced no-CBs CPUs"
724 depends on RCU_NOCB_CPU 727 depends on RCU_NOCB_CPU
725 help 728 help
726 This option forces all CPUs to be no-CBs CPUs. The rcu_nocbs= 729 This option forces all CPUs to be no-CBs CPUs. The rcu_nocbs=
727 boot parameter will be ignored. 730 boot parameter will be ignored. All CPUs' RCU callbacks will
731 be executed in the context of per-CPU rcuo kthreads created for
732 this purpose. Assuming that the kthreads whose names start with
733 "rcuo" are bound to "housekeeping" CPUs, this reduces OS jitter
734 on the remaining CPUs, but might decrease memory locality during
735 RCU-callback invocation, thus potentially degrading throughput.
728 736
729 Select this if all CPUs need to be no-CBs CPUs for real-time 737 Select this if all CPUs need to be no-CBs CPUs for real-time
730 or energy-efficiency reasons. 738 or energy-efficiency reasons.