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 |