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 |