diff options
author | Ingo Molnar <mingo@kernel.org> | 2014-09-23 01:21:42 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2014-09-23 01:21:42 -0400 |
commit | 62731433591156ece255e23ffd69ea4544b424f1 (patch) | |
tree | 125ce584cdb3166456b1767d03c3d5e72ea79a6e /init | |
parent | 7c9a3730a5ef4c6240eaaa2d8dcdb8cc1627d715 (diff) | |
parent | dd56af42bd829c6e770ed69812bd65a04eaeb1e4 (diff) |
Merge branch 'rcu/next' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu into core/rcu
Pull the v3.18 RCU changes from Paul E. McKenney:
"
* Update RCU documentation. These were posted to LKML at
https://lkml.org/lkml/2014/8/28/378.
* Miscellaneous fixes. These were posted to LKML at
https://lkml.org/lkml/2014/8/28/386. An additional fix that
eliminates a documented (but now inconvenient) deadlock between
RCU hotplug and expedited grace periods was posted at
https://lkml.org/lkml/2014/8/28/573.
* Changes related to No-CBs CPUs and NO_HZ_FULL. These were posted
to LKML at https://lkml.org/lkml/2014/8/28/412.
* Torture-test updates. These were posted to LKML at
https://lkml.org/lkml/2014/8/28/546 and at
https://lkml.org/lkml/2014/9/11/1114.
* RCU-tasks implementation. These were posted to LKML at
https://lkml.org/lkml/2014/8/28/540.
"
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'init')
-rw-r--r-- | init/Kconfig | 14 | ||||
-rw-r--r-- | init/main.c | 1 |
2 files changed, 13 insertions, 2 deletions
diff --git a/init/Kconfig b/init/Kconfig index e84c6423a2e5..4fe5500b998f 100644 --- a/init/Kconfig +++ b/init/Kconfig | |||
@@ -507,6 +507,16 @@ config PREEMPT_RCU | |||
507 | This option enables preemptible-RCU code that is common between | 507 | This option enables preemptible-RCU code that is common between |
508 | TREE_PREEMPT_RCU and, in the old days, TINY_PREEMPT_RCU. | 508 | TREE_PREEMPT_RCU and, in the old days, TINY_PREEMPT_RCU. |
509 | 509 | ||
510 | config TASKS_RCU | ||
511 | bool "Task_based RCU implementation using voluntary context switch" | ||
512 | default n | ||
513 | help | ||
514 | This option enables a task-based RCU implementation that uses | ||
515 | only voluntary context switch (not preemption!), idle, and | ||
516 | user-mode execution as quiescent states. | ||
517 | |||
518 | If unsure, say N. | ||
519 | |||
510 | config RCU_STALL_COMMON | 520 | config RCU_STALL_COMMON |
511 | def_bool ( TREE_RCU || TREE_PREEMPT_RCU || RCU_TRACE ) | 521 | def_bool ( TREE_RCU || TREE_PREEMPT_RCU || RCU_TRACE ) |
512 | help | 522 | help |
@@ -737,7 +747,7 @@ choice | |||
737 | 747 | ||
738 | config RCU_NOCB_CPU_NONE | 748 | config RCU_NOCB_CPU_NONE |
739 | bool "No build_forced no-CBs CPUs" | 749 | bool "No build_forced no-CBs CPUs" |
740 | depends on RCU_NOCB_CPU && !NO_HZ_FULL_ALL | 750 | depends on RCU_NOCB_CPU |
741 | help | 751 | help |
742 | This option does not force any of the CPUs to be no-CBs CPUs. | 752 | This option does not force any of the CPUs to be no-CBs CPUs. |
743 | Only CPUs designated by the rcu_nocbs= boot parameter will be | 753 | Only CPUs designated by the rcu_nocbs= boot parameter will be |
@@ -751,7 +761,7 @@ config RCU_NOCB_CPU_NONE | |||
751 | 761 | ||
752 | config RCU_NOCB_CPU_ZERO | 762 | config RCU_NOCB_CPU_ZERO |
753 | bool "CPU 0 is a build_forced no-CBs CPU" | 763 | bool "CPU 0 is a build_forced no-CBs CPU" |
754 | depends on RCU_NOCB_CPU && !NO_HZ_FULL_ALL | 764 | depends on RCU_NOCB_CPU |
755 | help | 765 | help |
756 | This option forces CPU 0 to be a no-CBs CPU, so that its RCU | 766 | This option forces CPU 0 to be a no-CBs CPU, so that its RCU |
757 | callbacks are invoked by a per-CPU kthread whose name begins | 767 | callbacks are invoked by a per-CPU kthread whose name begins |
diff --git a/init/main.c b/init/main.c index bb1aed928f21..e3c4cdd94d5b 100644 --- a/init/main.c +++ b/init/main.c | |||
@@ -578,6 +578,7 @@ asmlinkage __visible void __init start_kernel(void) | |||
578 | idr_init_cache(); | 578 | idr_init_cache(); |
579 | rcu_init(); | 579 | rcu_init(); |
580 | tick_nohz_init(); | 580 | tick_nohz_init(); |
581 | rcu_init_nohz(); | ||
581 | context_tracking_init(); | 582 | context_tracking_init(); |
582 | radix_tree_init(); | 583 | radix_tree_init(); |
583 | /* init some links before init_ISA_irqs() */ | 584 | /* init some links before init_ISA_irqs() */ |