diff options
| author | Ingo Molnar <mingo@kernel.org> | 2012-12-03 00:27:05 -0500 |
|---|---|---|
| committer | Ingo Molnar <mingo@kernel.org> | 2012-12-03 00:27:05 -0500 |
| commit | 630e1e0bcddfda9566462d4f9a0d58b31c29d467 (patch) | |
| tree | b09a28cf7b9ff0fee53af2245a7e3f8d006ae091 /init | |
| parent | 7e5530af11be68f3109672aed59243f82e1272f0 (diff) | |
| parent | 91d1aa43d30505b0b825db8898ffc80a8eca96c7 (diff) | |
Merge branch 'rcu/next' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu into core/rcu
Conflicts:
arch/x86/kernel/ptrace.c
Pull the latest RCU tree from Paul E. McKenney:
" The major features of this series are:
1. A first version of no-callbacks CPUs. This version prohibits
offlining CPU 0, but only when enabled via CONFIG_RCU_NOCB_CPU=y.
Relaxing this constraint is in progress, but not yet ready
for prime time. These commits were posted to LKML at
https://lkml.org/lkml/2012/10/30/724, and are at branch rcu/nocb.
2. Changes to SRCU that allows statically initialized srcu_struct
structures. These commits were posted to LKML at
https://lkml.org/lkml/2012/10/30/296, and are at branch rcu/srcu.
3. Restructuring of RCU's debugfs output. These commits were posted
to LKML at https://lkml.org/lkml/2012/10/30/341, and are at
branch rcu/tracing.
4. Additional CPU-hotplug/RCU improvements, posted to LKML at
https://lkml.org/lkml/2012/10/30/327, and are at branch rcu/hotplug.
Note that the commit eliminating __stop_machine() was judged to
be too-high of risk, so is deferred to 3.9.
5. Changes to RCU's idle interface, most notably a new module
parameter that redirects normal grace-period operations to
their expedited equivalents. These were posted to LKML at
https://lkml.org/lkml/2012/10/30/739, and are at branch rcu/idle.
6. Additional diagnostics for RCU's CPU stall warning facility,
posted to LKML at https://lkml.org/lkml/2012/10/30/315, and
are at branch rcu/stall. The most notable change reduces the
default RCU CPU stall-warning time from 60 seconds to 21 seconds,
so that it once again happens sooner than the softlockup timeout.
7. Documentation updates, which were posted to LKML at
https://lkml.org/lkml/2012/10/30/280, and are at branch rcu/doc.
A couple of late-breaking changes were posted at
https://lkml.org/lkml/2012/11/16/634 and
https://lkml.org/lkml/2012/11/16/547.
8. Miscellaneous fixes, which were posted to LKML at
https://lkml.org/lkml/2012/10/30/309, along with a late-breaking
change posted at Fri, 16 Nov 2012 11:26:25 -0800 with message-ID
<20121116192625.GA447@linux.vnet.ibm.com>, but which lkml.org
seems to have missed. These are at branch rcu/fixes.
9. Finally, a fix for an lockdep-RCU splat was posted to LKML
at https://lkml.org/lkml/2012/11/7/486. This is at rcu/next. "
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'init')
| -rw-r--r-- | init/Kconfig | 67 |
1 files changed, 44 insertions, 23 deletions
diff --git a/init/Kconfig b/init/Kconfig index 6fdd6e339326..2054e048bb98 100644 --- a/init/Kconfig +++ b/init/Kconfig | |||
| @@ -486,35 +486,35 @@ config PREEMPT_RCU | |||
| 486 | This option enables preemptible-RCU code that is common between | 486 | This option enables preemptible-RCU code that is common between |
| 487 | the TREE_PREEMPT_RCU and TINY_PREEMPT_RCU implementations. | 487 | the TREE_PREEMPT_RCU and TINY_PREEMPT_RCU implementations. |
| 488 | 488 | ||
| 489 | config CONTEXT_TRACKING | ||
| 490 | bool | ||
| 491 | |||
| 489 | config RCU_USER_QS | 492 | config RCU_USER_QS |
| 490 | bool "Consider userspace as in RCU extended quiescent state" | 493 | bool "Consider userspace as in RCU extended quiescent state" |
| 491 | depends on HAVE_RCU_USER_QS && SMP | 494 | depends on HAVE_CONTEXT_TRACKING && SMP |
| 495 | select CONTEXT_TRACKING | ||
| 492 | help | 496 | help |
| 493 | This option sets hooks on kernel / userspace boundaries and | 497 | This option sets hooks on kernel / userspace boundaries and |
| 494 | puts RCU in extended quiescent state when the CPU runs in | 498 | puts RCU in extended quiescent state when the CPU runs in |
| 495 | userspace. It means that when a CPU runs in userspace, it is | 499 | userspace. It means that when a CPU runs in userspace, it is |
| 496 | excluded from the global RCU state machine and thus doesn't | 500 | excluded from the global RCU state machine and thus doesn't |
| 497 | to keep the timer tick on for RCU. | 501 | try to keep the timer tick on for RCU. |
| 498 | 502 | ||
| 499 | Unless you want to hack and help the development of the full | 503 | Unless you want to hack and help the development of the full |
| 500 | tickless feature, you shouldn't enable this option. It adds | 504 | dynticks mode, you shouldn't enable this option. It also |
| 501 | unnecessary overhead. | 505 | adds unnecessary overhead. |
| 502 | 506 | ||
| 503 | If unsure say N | 507 | If unsure say N |
| 504 | 508 | ||
| 505 | config RCU_USER_QS_FORCE | 509 | config CONTEXT_TRACKING_FORCE |
| 506 | bool "Force userspace extended QS by default" | 510 | bool "Force context tracking" |
| 507 | depends on RCU_USER_QS | 511 | depends on CONTEXT_TRACKING |
| 508 | help | 512 | help |
| 509 | Set the hooks in user/kernel boundaries by default in order to | 513 | Probe on user/kernel boundaries by default in order to |
| 510 | test this feature that treats userspace as an extended quiescent | 514 | test the features that rely on it such as userspace RCU extended |
| 511 | state until we have a real user like a full adaptive nohz option. | 515 | quiescent states. |
| 512 | 516 | This test is there for debugging until we have a real user like the | |
| 513 | Unless you want to hack and help the development of the full | 517 | full dynticks mode. |
| 514 | tickless feature, you shouldn't enable this option. It adds | ||
| 515 | unnecessary overhead. | ||
| 516 | |||
| 517 | If unsure say N | ||
| 518 | 518 | ||
| 519 | config RCU_FANOUT | 519 | config RCU_FANOUT |
| 520 | int "Tree-based hierarchical RCU fanout value" | 520 | int "Tree-based hierarchical RCU fanout value" |
| @@ -582,14 +582,13 @@ config RCU_FAST_NO_HZ | |||
| 582 | depends on NO_HZ && SMP | 582 | depends on NO_HZ && SMP |
| 583 | default n | 583 | default n |
| 584 | help | 584 | help |
| 585 | This option causes RCU to attempt to accelerate grace periods | 585 | This option causes RCU to attempt to accelerate grace periods in |
| 586 | in order to allow CPUs to enter dynticks-idle state more | 586 | order to allow CPUs to enter dynticks-idle state more quickly. |
| 587 | quickly. On the other hand, this option increases the overhead | 587 | On the other hand, this option increases the overhead of the |
| 588 | of the dynticks-idle checking, particularly on systems with | 588 | dynticks-idle checking, thus degrading scheduling latency. |
| 589 | large numbers of CPUs. | ||
| 590 | 589 | ||
| 591 | Say Y if energy efficiency is critically important, particularly | 590 | Say Y if energy efficiency is critically important, and you don't |
| 592 | if you have relatively few CPUs. | 591 | care about real-time response. |
| 593 | 592 | ||
| 594 | Say N if you are unsure. | 593 | Say N if you are unsure. |
| 595 | 594 | ||
| @@ -655,6 +654,28 @@ config RCU_BOOST_DELAY | |||
| 655 | 654 | ||
| 656 | Accept the default if unsure. | 655 | Accept the default if unsure. |
| 657 | 656 | ||
| 657 | config RCU_NOCB_CPU | ||
| 658 | bool "Offload RCU callback processing from boot-selected CPUs" | ||
| 659 | depends on TREE_RCU || TREE_PREEMPT_RCU | ||
| 660 | default n | ||
| 661 | help | ||
| 662 | Use this option to reduce OS jitter for aggressive HPC or | ||
| 663 | real-time workloads. It can also be used to offload RCU | ||
| 664 | callback invocation to energy-efficient CPUs in battery-powered | ||
| 665 | asymmetric multiprocessors. | ||
| 666 | |||
| 667 | This option offloads callback invocation from the set of | ||
| 668 | CPUs specified at boot time by the rcu_nocbs parameter. | ||
| 669 | For each such CPU, a kthread ("rcuoN") will be created to | ||
| 670 | invoke callbacks, where the "N" is the CPU being offloaded. | ||
| 671 | Nothing prevents this kthread from running on the specified | ||
| 672 | CPUs, but (1) the kthreads may be preempted between each | ||
| 673 | callback, and (2) affinity or cgroups can be used to force | ||
| 674 | the kthreads to run on whatever set of CPUs is desired. | ||
| 675 | |||
| 676 | Say Y here if you want reduced OS jitter on selected CPUs. | ||
| 677 | Say N here if you are unsure. | ||
| 678 | |||
| 658 | endmenu # "RCU Subsystem" | 679 | endmenu # "RCU Subsystem" |
| 659 | 680 | ||
| 660 | config IKCONFIG | 681 | config IKCONFIG |
