diff options
author | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2013-04-30 17:49:42 -0400 |
---|---|---|
committer | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2013-06-10 16:44:57 -0400 |
commit | 676c3dc2033aa43f2e605611dec9be55a921dafd (patch) | |
tree | 2021f6c6d9b79d8af4b0c9e85d4d6726af01fb49 /init/Kconfig | |
parent | 4982969d965ec87b1887c86d2e0b3d81065e1d38 (diff) |
rcu: Apply Dave Jones's NOCB Kconfig help feedback
The Kconfig help text for the RCU_NOCB_CPU_NONE, RCU_NOCB_CPU_ZERO,
and RCU_NOCB_CPU_ALL Kconfig options was unclear, so this commit
adds a bit more detail.
Reported-by: Dave Jones <davej@redhat.com>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Diffstat (limited to 'init/Kconfig')
-rw-r--r-- | init/Kconfig | 34 |
1 files changed, 25 insertions, 9 deletions
diff --git a/init/Kconfig b/init/Kconfig index 8df5116621ec..f54bc60f2afb 100644 --- a/init/Kconfig +++ b/init/Kconfig | |||
@@ -682,9 +682,10 @@ choice | |||
682 | prompt "Build-forced no-CBs CPUs" | 682 | prompt "Build-forced no-CBs CPUs" |
683 | default RCU_NOCB_CPU_NONE | 683 | default RCU_NOCB_CPU_NONE |
684 | help | 684 | help |
685 | This option allows no-CBs CPUs to be specified at build time. | 685 | This option allows no-CBs CPUs (whose RCU callbacks are invoked |
686 | Additional no-CBs CPUs may be specified by the rcu_nocbs= | 686 | from kthreads rather than from softirq context) to be specified |
687 | boot parameter. | 687 | at build time. Additional no-CBs CPUs may be specified by |
688 | the rcu_nocbs= boot parameter. | ||
688 | 689 | ||
689 | config RCU_NOCB_CPU_NONE | 690 | config RCU_NOCB_CPU_NONE |
690 | bool "No build_forced no-CBs CPUs" | 691 | bool "No build_forced no-CBs CPUs" |
@@ -692,25 +693,40 @@ config RCU_NOCB_CPU_NONE | |||
692 | help | 693 | help |
693 | This option does not force any of the CPUs to be no-CBs CPUs. | 694 | This option does not force any of the CPUs to be no-CBs CPUs. |
694 | Only CPUs designated by the rcu_nocbs= boot parameter will be | 695 | Only CPUs designated by the rcu_nocbs= boot parameter will be |
695 | no-CBs CPUs. | 696 | no-CBs CPUs, whose RCU callbacks will be invoked by per-CPU |
697 | kthreads whose names begin with "rcuo". All other CPUs will | ||
698 | invoke their own RCU callbacks in softirq context. | ||
699 | |||
700 | Select this option if you want to choose no-CBs CPUs at | ||
701 | boot time, for example, to allow testing of different no-CBs | ||
702 | configurations without having to rebuild the kernel each time. | ||
696 | 703 | ||
697 | config RCU_NOCB_CPU_ZERO | 704 | config RCU_NOCB_CPU_ZERO |
698 | bool "CPU 0 is a build_forced no-CBs CPU" | 705 | bool "CPU 0 is a build_forced no-CBs CPU" |
699 | depends on RCU_NOCB_CPU && !NO_HZ_FULL | 706 | depends on RCU_NOCB_CPU && !NO_HZ_FULL |
700 | help | 707 | help |
701 | This option forces CPU 0 to be a no-CBs CPU. Additional CPUs | 708 | This option forces CPU 0 to be a no-CBs CPU, so that its RCU |
702 | may be designated as no-CBs CPUs using the rcu_nocbs= boot | 709 | callbacks are invoked by a per-CPU kthread whose name begins |
703 | parameter will be no-CBs CPUs. | 710 | with "rcuo". Additional CPUs may be designated as no-CBs |
711 | CPUs using the rcu_nocbs= boot parameter will be no-CBs CPUs. | ||
712 | All other CPUs will invoke their own RCU callbacks in softirq | ||
713 | context. | ||
704 | 714 | ||
705 | Select this if CPU 0 needs to be a no-CBs CPU for real-time | 715 | Select this if CPU 0 needs to be a no-CBs CPU for real-time |
706 | or energy-efficiency reasons. | 716 | or energy-efficiency reasons, but the real reason it exists |
717 | is to ensure that randconfig testing covers mixed systems. | ||
707 | 718 | ||
708 | config RCU_NOCB_CPU_ALL | 719 | config RCU_NOCB_CPU_ALL |
709 | bool "All CPUs are build_forced no-CBs CPUs" | 720 | bool "All CPUs are build_forced no-CBs CPUs" |
710 | depends on RCU_NOCB_CPU | 721 | depends on RCU_NOCB_CPU |
711 | help | 722 | help |
712 | This option forces all CPUs to be no-CBs CPUs. The rcu_nocbs= | 723 | This option forces all CPUs to be no-CBs CPUs. The rcu_nocbs= |
713 | boot parameter will be ignored. | 724 | boot parameter will be ignored. All CPUs' RCU callbacks will |
725 | be executed in the context of per-CPU rcuo kthreads created for | ||
726 | this purpose. Assuming that the kthreads whose names start with | ||
727 | "rcuo" are bound to "housekeeping" CPUs, this reduces OS jitter | ||
728 | on the remaining CPUs, but might decrease memory locality during | ||
729 | RCU-callback invocation, thus potentially degrading throughput. | ||
714 | 730 | ||
715 | Select this if all CPUs need to be no-CBs CPUs for real-time | 731 | Select this if all CPUs need to be no-CBs CPUs for real-time |
716 | or energy-efficiency reasons. | 732 | or energy-efficiency reasons. |