diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-04-30 10:39:01 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-04-30 10:39:01 -0400 |
| commit | 1f889ec62c3f0d8913f3c32f9aff2a1e15099346 (patch) | |
| tree | 381a74ab73c865ba6d1c77df39898dd4f81cfeef /init | |
| parent | 6c24499f40d96bf07a85b709fb1bee5cea611a1d (diff) | |
| parent | 8fcfae31719c0a6c03f2cf63f815b46d378d8be4 (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 main changes in this cycle are mostly related to preparatory work
for the full-dynticks work:
- Remove restrictions on no-CBs CPUs, make RCU_FAST_NO_HZ take
advantage of numbered callbacks, do callback accelerations based on
numbered callbacks. Posted to LKML at
https://lkml.org/lkml/2013/3/18/960
- RCU documentation updates. Posted to LKML at
https://lkml.org/lkml/2013/3/18/570
- Miscellaneous fixes. Posted to LKML at
https://lkml.org/lkml/2013/3/18/594"
* 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (24 commits)
rcu: Make rcu_accelerate_cbs() note need for future grace periods
rcu: Abstract rcu_start_future_gp() from rcu_nocb_wait_gp()
rcu: Rename n_nocb_gp_requests to need_future_gp
rcu: Push lock release to rcu_start_gp()'s callers
rcu: Repurpose no-CBs event tracing to future-GP events
rcu: Rearrange locking in rcu_start_gp()
rcu: Make RCU_FAST_NO_HZ take advantage of numbered callbacks
rcu: Accelerate RCU callbacks at grace-period end
rcu: Export RCU_FAST_NO_HZ parameters to sysfs
rcu: Distinguish "rcuo" kthreads by RCU flavor
rcu: Add event tracing for no-CBs CPUs' grace periods
rcu: Add event tracing for no-CBs CPUs' callback registration
rcu: Introduce proper blocking to no-CBs kthreads GP waits
rcu: Provide compile-time control for no-CBs CPUs
rcu: Tone down debugging during boot-up and shutdown.
rcu: Add softirq-stall indications to stall-warning messages
rcu: Documentation update
rcu: Make bugginess of code sample more evident
rcu: Fix hlist_bl_set_first_rcu() annotation
rcu: Delete unused rcu_node "wakemask" field
...
Diffstat (limited to 'init')
| -rw-r--r-- | init/Kconfig | 73 |
1 files changed, 58 insertions, 15 deletions
diff --git a/init/Kconfig b/init/Kconfig index 5341d7232c3a..71bb9e73011a 100644 --- a/init/Kconfig +++ b/init/Kconfig | |||
| @@ -578,13 +578,16 @@ config RCU_FAST_NO_HZ | |||
| 578 | depends on NO_HZ && SMP | 578 | depends on NO_HZ && SMP |
| 579 | default n | 579 | default n |
| 580 | help | 580 | help |
| 581 | This option causes RCU to attempt to accelerate grace periods in | 581 | This option permits CPUs to enter dynticks-idle state even if |
| 582 | order to allow CPUs to enter dynticks-idle state more quickly. | 582 | they have RCU callbacks queued, and prevents RCU from waking |
| 583 | On the other hand, this option increases the overhead of the | 583 | these CPUs up more than roughly once every four jiffies (by |
| 584 | dynticks-idle checking, thus degrading scheduling latency. | 584 | default, you can adjust this using the rcutree.rcu_idle_gp_delay |
| 585 | parameter), thus improving energy efficiency. On the other | ||
| 586 | hand, this option increases the duration of RCU grace periods, | ||
| 587 | for example, slowing down synchronize_rcu(). | ||
| 585 | 588 | ||
| 586 | Say Y if energy efficiency is critically important, and you don't | 589 | Say Y if energy efficiency is critically important, and you |
| 587 | care about real-time response. | 590 | don't care about increased grace-period durations. |
| 588 | 591 | ||
| 589 | Say N if you are unsure. | 592 | Say N if you are unsure. |
| 590 | 593 | ||
| @@ -651,7 +654,7 @@ config RCU_BOOST_DELAY | |||
| 651 | Accept the default if unsure. | 654 | Accept the default if unsure. |
| 652 | 655 | ||
| 653 | config RCU_NOCB_CPU | 656 | config RCU_NOCB_CPU |
| 654 | bool "Offload RCU callback processing from boot-selected CPUs" | 657 | bool "Offload RCU callback processing from boot-selected CPUs (EXPERIMENTAL" |
| 655 | depends on TREE_RCU || TREE_PREEMPT_RCU | 658 | depends on TREE_RCU || TREE_PREEMPT_RCU |
| 656 | default n | 659 | default n |
| 657 | help | 660 | help |
| @@ -662,16 +665,56 @@ config RCU_NOCB_CPU | |||
| 662 | 665 | ||
| 663 | This option offloads callback invocation from the set of | 666 | This option offloads callback invocation from the set of |
| 664 | CPUs specified at boot time by the rcu_nocbs parameter. | 667 | CPUs specified at boot time by the rcu_nocbs parameter. |
| 665 | For each such CPU, a kthread ("rcuoN") will be created to | 668 | For each such CPU, a kthread ("rcuox/N") will be created to |
| 666 | invoke callbacks, where the "N" is the CPU being offloaded. | 669 | invoke callbacks, where the "N" is the CPU being offloaded, |
| 667 | Nothing prevents this kthread from running on the specified | 670 | and where the "x" is "b" for RCU-bh, "p" for RCU-preempt, and |
| 668 | CPUs, but (1) the kthreads may be preempted between each | 671 | "s" for RCU-sched. Nothing prevents this kthread from running |
| 669 | callback, and (2) affinity or cgroups can be used to force | 672 | on the specified CPUs, but (1) the kthreads may be preempted |
| 670 | the kthreads to run on whatever set of CPUs is desired. | 673 | between each callback, and (2) affinity or cgroups can be used |
| 671 | 674 | to force the kthreads to run on whatever set of CPUs is desired. | |
| 672 | Say Y here if you want reduced OS jitter on selected CPUs. | 675 | |
| 676 | Say Y here if you want to help to debug reduced OS jitter. | ||
| 673 | Say N here if you are unsure. | 677 | Say N here if you are unsure. |
| 674 | 678 | ||
| 679 | choice | ||
| 680 | prompt "Build-forced no-CBs CPUs" | ||
| 681 | default RCU_NOCB_CPU_NONE | ||
| 682 | help | ||
| 683 | This option allows no-CBs CPUs to be specified at build time. | ||
| 684 | Additional no-CBs CPUs may be specified by the rcu_nocbs= | ||
| 685 | boot parameter. | ||
| 686 | |||
| 687 | config RCU_NOCB_CPU_NONE | ||
| 688 | bool "No build_forced no-CBs CPUs" | ||
| 689 | depends on RCU_NOCB_CPU | ||
| 690 | help | ||
| 691 | This option does not force any of the CPUs to be no-CBs CPUs. | ||
| 692 | Only CPUs designated by the rcu_nocbs= boot parameter will be | ||
| 693 | no-CBs CPUs. | ||
| 694 | |||
| 695 | config RCU_NOCB_CPU_ZERO | ||
| 696 | bool "CPU 0 is a build_forced no-CBs CPU" | ||
| 697 | depends on RCU_NOCB_CPU | ||
| 698 | help | ||
| 699 | This option forces CPU 0 to be a no-CBs CPU. Additional CPUs | ||
| 700 | may be designated as no-CBs CPUs using the rcu_nocbs= boot | ||
| 701 | parameter will be no-CBs CPUs. | ||
| 702 | |||
| 703 | Select this if CPU 0 needs to be a no-CBs CPU for real-time | ||
| 704 | or energy-efficiency reasons. | ||
| 705 | |||
| 706 | config RCU_NOCB_CPU_ALL | ||
| 707 | bool "All CPUs are build_forced no-CBs CPUs" | ||
| 708 | depends on RCU_NOCB_CPU | ||
| 709 | help | ||
| 710 | This option forces all CPUs to be no-CBs CPUs. The rcu_nocbs= | ||
| 711 | boot parameter will be ignored. | ||
| 712 | |||
| 713 | Select this if all CPUs need to be no-CBs CPUs for real-time | ||
| 714 | or energy-efficiency reasons. | ||
| 715 | |||
| 716 | endchoice | ||
| 717 | |||
| 675 | endmenu # "RCU Subsystem" | 718 | endmenu # "RCU Subsystem" |
| 676 | 719 | ||
| 677 | config IKCONFIG | 720 | config IKCONFIG |
