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 | |
| 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')
| -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. |
