aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>2013-10-08 23:23:47 -0400
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>2013-10-15 15:53:31 -0400
commit4102adab9189c8ea2f0cdd2f88345fd25d2790f1 (patch)
tree235964cfd9c09a5c642a2d0d8745a651a0d4bcfa
parent252997330908cb8ee3d5714539ed967b977c2eae (diff)
rcu: Move RCU-related source code to kernel/rcu directory
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Reviewed-by: Ingo Molnar <mingo@kernel.org>
-rw-r--r--Documentation/DocBook/device-drivers.tmpl5
-rw-r--r--Documentation/kernel-parameters.txt95
-rw-r--r--MAINTAINERS11
-rw-r--r--kernel/Makefile11
-rw-r--r--kernel/rcu/Makefile6
-rw-r--r--kernel/rcu/rcu.h (renamed from kernel/rcu.h)0
-rw-r--r--kernel/rcu/srcu.c (renamed from kernel/srcu.c)0
-rw-r--r--kernel/rcu/tiny.c (renamed from kernel/rcutiny.c)8
-rw-r--r--kernel/rcu/tiny_plugin.h (renamed from kernel/rcutiny_plugin.h)0
-rw-r--r--kernel/rcu/torture.c (renamed from kernel/rcutorture.c)6
-rw-r--r--kernel/rcu/tree.c (renamed from kernel/rcutree.c)13
-rw-r--r--kernel/rcu/tree.h (renamed from kernel/rcutree.h)0
-rw-r--r--kernel/rcu/tree_plugin.h (renamed from kernel/rcutree_plugin.h)4
-rw-r--r--kernel/rcu/tree_trace.c (renamed from kernel/rcutree_trace.c)2
-rw-r--r--kernel/rcu/update.c (renamed from kernel/rcupdate.c)6
15 files changed, 105 insertions, 62 deletions
diff --git a/Documentation/DocBook/device-drivers.tmpl b/Documentation/DocBook/device-drivers.tmpl
index fe397f90a34f..6c9d9d37c83a 100644
--- a/Documentation/DocBook/device-drivers.tmpl
+++ b/Documentation/DocBook/device-drivers.tmpl
@@ -87,7 +87,10 @@ X!Iinclude/linux/kobject.h
87!Ekernel/printk/printk.c 87!Ekernel/printk/printk.c
88!Ekernel/panic.c 88!Ekernel/panic.c
89!Ekernel/sys.c 89!Ekernel/sys.c
90!Ekernel/rcupdate.c 90!Ekernel/rcu/srcu.c
91!Ekernel/rcu/tree.c
92!Ekernel/rcu/tree_plugin.h
93!Ekernel/rcu/update.c
91 </sect1> 94 </sect1>
92 95
93 <sect1><title>Device Resource Management</title> 96 <sect1><title>Device Resource Management</title>
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index 1a036cd972fb..c3dc13e90a40 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -2595,7 +2595,7 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
2595 ramdisk_size= [RAM] Sizes of RAM disks in kilobytes 2595 ramdisk_size= [RAM] Sizes of RAM disks in kilobytes
2596 See Documentation/blockdev/ramdisk.txt. 2596 See Documentation/blockdev/ramdisk.txt.
2597 2597
2598 rcu_nocbs= [KNL,BOOT] 2598 rcu_nocbs= [KNL]
2599 In kernels built with CONFIG_RCU_NOCB_CPU=y, set 2599 In kernels built with CONFIG_RCU_NOCB_CPU=y, set
2600 the specified list of CPUs to be no-callback CPUs. 2600 the specified list of CPUs to be no-callback CPUs.
2601 Invocation of these CPUs' RCU callbacks will 2601 Invocation of these CPUs' RCU callbacks will
@@ -2608,7 +2608,7 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
2608 real-time workloads. It can also improve energy 2608 real-time workloads. It can also improve energy
2609 efficiency for asymmetric multiprocessors. 2609 efficiency for asymmetric multiprocessors.
2610 2610
2611 rcu_nocb_poll [KNL,BOOT] 2611 rcu_nocb_poll [KNL]
2612 Rather than requiring that offloaded CPUs 2612 Rather than requiring that offloaded CPUs
2613 (specified by rcu_nocbs= above) explicitly 2613 (specified by rcu_nocbs= above) explicitly
2614 awaken the corresponding "rcuoN" kthreads, 2614 awaken the corresponding "rcuoN" kthreads,
@@ -2619,126 +2619,145 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
2619 energy efficiency by requiring that the kthreads 2619 energy efficiency by requiring that the kthreads
2620 periodically wake up to do the polling. 2620 periodically wake up to do the polling.
2621 2621
2622 rcutree.blimit= [KNL,BOOT] 2622 rcutree.blimit= [KNL]
2623 Set maximum number of finished RCU callbacks to process 2623 Set maximum number of finished RCU callbacks to process
2624 in one batch. 2624 in one batch.
2625 2625
2626 rcutree.fanout_leaf= [KNL,BOOT] 2626 rcutree.rcu_fanout_leaf= [KNL]
2627 Increase the number of CPUs assigned to each 2627 Increase the number of CPUs assigned to each
2628 leaf rcu_node structure. Useful for very large 2628 leaf rcu_node structure. Useful for very large
2629 systems. 2629 systems.
2630 2630
2631 rcutree.jiffies_till_first_fqs= [KNL,BOOT] 2631 rcutree.jiffies_till_first_fqs= [KNL]
2632 Set delay from grace-period initialization to 2632 Set delay from grace-period initialization to
2633 first attempt to force quiescent states. 2633 first attempt to force quiescent states.
2634 Units are jiffies, minimum value is zero, 2634 Units are jiffies, minimum value is zero,
2635 and maximum value is HZ. 2635 and maximum value is HZ.
2636 2636
2637 rcutree.jiffies_till_next_fqs= [KNL,BOOT] 2637 rcutree.jiffies_till_next_fqs= [KNL]
2638 Set delay between subsequent attempts to force 2638 Set delay between subsequent attempts to force
2639 quiescent states. Units are jiffies, minimum 2639 quiescent states. Units are jiffies, minimum
2640 value is one, and maximum value is HZ. 2640 value is one, and maximum value is HZ.
2641 2641
2642 rcutree.qhimark= [KNL,BOOT] 2642 rcutree.qhimark= [KNL]
2643 Set threshold of queued 2643 Set threshold of queued
2644 RCU callbacks over which batch limiting is disabled. 2644 RCU callbacks over which batch limiting is disabled.
2645 2645
2646 rcutree.qlowmark= [KNL,BOOT] 2646 rcutree.qlowmark= [KNL]
2647 Set threshold of queued RCU callbacks below which 2647 Set threshold of queued RCU callbacks below which
2648 batch limiting is re-enabled. 2648 batch limiting is re-enabled.
2649 2649
2650 rcutree.rcu_cpu_stall_suppress= [KNL,BOOT] 2650 rcutree.rcu_idle_gp_delay= [KNL]
2651 Suppress RCU CPU stall warning messages.
2652
2653 rcutree.rcu_cpu_stall_timeout= [KNL,BOOT]
2654 Set timeout for RCU CPU stall warning messages.
2655
2656 rcutree.rcu_idle_gp_delay= [KNL,BOOT]
2657 Set wakeup interval for idle CPUs that have 2651 Set wakeup interval for idle CPUs that have
2658 RCU callbacks (RCU_FAST_NO_HZ=y). 2652 RCU callbacks (RCU_FAST_NO_HZ=y).
2659 2653
2660 rcutree.rcu_idle_lazy_gp_delay= [KNL,BOOT] 2654 rcutree.rcu_idle_lazy_gp_delay= [KNL]
2661 Set wakeup interval for idle CPUs that have 2655 Set wakeup interval for idle CPUs that have
2662 only "lazy" RCU callbacks (RCU_FAST_NO_HZ=y). 2656 only "lazy" RCU callbacks (RCU_FAST_NO_HZ=y).
2663 Lazy RCU callbacks are those which RCU can 2657 Lazy RCU callbacks are those which RCU can
2664 prove do nothing more than free memory. 2658 prove do nothing more than free memory.
2665 2659
2666 rcutorture.fqs_duration= [KNL,BOOT] 2660 rcutorture.fqs_duration= [KNL]
2667 Set duration of force_quiescent_state bursts. 2661 Set duration of force_quiescent_state bursts.
2668 2662
2669 rcutorture.fqs_holdoff= [KNL,BOOT] 2663 rcutorture.fqs_holdoff= [KNL]
2670 Set holdoff time within force_quiescent_state bursts. 2664 Set holdoff time within force_quiescent_state bursts.
2671 2665
2672 rcutorture.fqs_stutter= [KNL,BOOT] 2666 rcutorture.fqs_stutter= [KNL]
2673 Set wait time between force_quiescent_state bursts. 2667 Set wait time between force_quiescent_state bursts.
2674 2668
2675 rcutorture.irqreader= [KNL,BOOT] 2669 rcutorture.gp_exp= [KNL]
2676 Test RCU readers from irq handlers. 2670 Use expedited update-side primitives.
2671
2672 rcutorture.gp_normal= [KNL]
2673 Use normal (non-expedited) update-side primitives.
2674 If both gp_exp and gp_normal are set, do both.
2675 If neither gp_exp nor gp_normal are set, still
2676 do both.
2677 2677
2678 rcutorture.n_barrier_cbs= [KNL,BOOT] 2678 rcutorture.n_barrier_cbs= [KNL]
2679 Set callbacks/threads for rcu_barrier() testing. 2679 Set callbacks/threads for rcu_barrier() testing.
2680 2680
2681 rcutorture.nfakewriters= [KNL,BOOT] 2681 rcutorture.nfakewriters= [KNL]
2682 Set number of concurrent RCU writers. These just 2682 Set number of concurrent RCU writers. These just
2683 stress RCU, they don't participate in the actual 2683 stress RCU, they don't participate in the actual
2684 test, hence the "fake". 2684 test, hence the "fake".
2685 2685
2686 rcutorture.nreaders= [KNL,BOOT] 2686 rcutorture.nreaders= [KNL]
2687 Set number of RCU readers. 2687 Set number of RCU readers.
2688 2688
2689 rcutorture.onoff_holdoff= [KNL,BOOT] 2689 rcutorture.object_debug= [KNL]
2690 Enable debug-object double-call_rcu() testing.
2691
2692 rcutorture.onoff_holdoff= [KNL]
2690 Set time (s) after boot for CPU-hotplug testing. 2693 Set time (s) after boot for CPU-hotplug testing.
2691 2694
2692 rcutorture.onoff_interval= [KNL,BOOT] 2695 rcutorture.onoff_interval= [KNL]
2693 Set time (s) between CPU-hotplug operations, or 2696 Set time (s) between CPU-hotplug operations, or
2694 zero to disable CPU-hotplug testing. 2697 zero to disable CPU-hotplug testing.
2695 2698
2696 rcutorture.shuffle_interval= [KNL,BOOT] 2699 rcutorture.rcutorture_runnable= [BOOT]
2700 Start rcutorture running at boot time.
2701
2702 rcutorture.shuffle_interval= [KNL]
2697 Set task-shuffle interval (s). Shuffling tasks 2703 Set task-shuffle interval (s). Shuffling tasks
2698 allows some CPUs to go into dyntick-idle mode 2704 allows some CPUs to go into dyntick-idle mode
2699 during the rcutorture test. 2705 during the rcutorture test.
2700 2706
2701 rcutorture.shutdown_secs= [KNL,BOOT] 2707 rcutorture.shutdown_secs= [KNL]
2702 Set time (s) after boot system shutdown. This 2708 Set time (s) after boot system shutdown. This
2703 is useful for hands-off automated testing. 2709 is useful for hands-off automated testing.
2704 2710
2705 rcutorture.stall_cpu= [KNL,BOOT] 2711 rcutorture.stall_cpu= [KNL]
2706 Duration of CPU stall (s) to test RCU CPU stall 2712 Duration of CPU stall (s) to test RCU CPU stall
2707 warnings, zero to disable. 2713 warnings, zero to disable.
2708 2714
2709 rcutorture.stall_cpu_holdoff= [KNL,BOOT] 2715 rcutorture.stall_cpu_holdoff= [KNL]
2710 Time to wait (s) after boot before inducing stall. 2716 Time to wait (s) after boot before inducing stall.
2711 2717
2712 rcutorture.stat_interval= [KNL,BOOT] 2718 rcutorture.stat_interval= [KNL]
2713 Time (s) between statistics printk()s. 2719 Time (s) between statistics printk()s.
2714 2720
2715 rcutorture.stutter= [KNL,BOOT] 2721 rcutorture.stutter= [KNL]
2716 Time (s) to stutter testing, for example, specifying 2722 Time (s) to stutter testing, for example, specifying
2717 five seconds causes the test to run for five seconds, 2723 five seconds causes the test to run for five seconds,
2718 wait for five seconds, and so on. This tests RCU's 2724 wait for five seconds, and so on. This tests RCU's
2719 ability to transition abruptly to and from idle. 2725 ability to transition abruptly to and from idle.
2720 2726
2721 rcutorture.test_boost= [KNL,BOOT] 2727 rcutorture.test_boost= [KNL]
2722 Test RCU priority boosting? 0=no, 1=maybe, 2=yes. 2728 Test RCU priority boosting? 0=no, 1=maybe, 2=yes.
2723 "Maybe" means test if the RCU implementation 2729 "Maybe" means test if the RCU implementation
2724 under test support RCU priority boosting. 2730 under test support RCU priority boosting.
2725 2731
2726 rcutorture.test_boost_duration= [KNL,BOOT] 2732 rcutorture.test_boost_duration= [KNL]
2727 Duration (s) of each individual boost test. 2733 Duration (s) of each individual boost test.
2728 2734
2729 rcutorture.test_boost_interval= [KNL,BOOT] 2735 rcutorture.test_boost_interval= [KNL]
2730 Interval (s) between each boost test. 2736 Interval (s) between each boost test.
2731 2737
2732 rcutorture.test_no_idle_hz= [KNL,BOOT] 2738 rcutorture.test_no_idle_hz= [KNL]
2733 Test RCU's dyntick-idle handling. See also the 2739 Test RCU's dyntick-idle handling. See also the
2734 rcutorture.shuffle_interval parameter. 2740 rcutorture.shuffle_interval parameter.
2735 2741
2736 rcutorture.torture_type= [KNL,BOOT] 2742 rcutorture.torture_type= [KNL]
2737 Specify the RCU implementation to test. 2743 Specify the RCU implementation to test.
2738 2744
2739 rcutorture.verbose= [KNL,BOOT] 2745 rcutorture.verbose= [KNL]
2740 Enable additional printk() statements. 2746 Enable additional printk() statements.
2741 2747
2748 rcupdate.rcu_expedited= [KNL]
2749 Use expedited grace-period primitives, for
2750 example, synchronize_rcu_expedited() instead
2751 of synchronize_rcu(). This reduces latency,
2752 but can increase CPU utilization, degrade
2753 real-time latency, and degrade energy efficiency.
2754
2755 rcupdate.rcu_cpu_stall_suppress= [KNL]
2756 Suppress RCU CPU stall warning messages.
2757
2758 rcupdate.rcu_cpu_stall_timeout= [KNL]
2759 Set timeout for RCU CPU stall warning messages.
2760
2742 rdinit= [KNL] 2761 rdinit= [KNL]
2743 Format: <full_path> 2762 Format: <full_path>
2744 Run specified binary instead of /init from the ramdisk, 2763 Run specified binary instead of /init from the ramdisk,
diff --git a/MAINTAINERS b/MAINTAINERS
index e61c2e83fc2b..28f2478b6794 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -6903,7 +6903,7 @@ M: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
6903S: Supported 6903S: Supported
6904T: git git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git 6904T: git git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git
6905F: Documentation/RCU/torture.txt 6905F: Documentation/RCU/torture.txt
6906F: kernel/rcutorture.c 6906F: kernel/rcu/torture.c
6907 6907
6908RDC R-321X SoC 6908RDC R-321X SoC
6909M: Florian Fainelli <florian@openwrt.org> 6909M: Florian Fainelli <florian@openwrt.org>
@@ -6930,8 +6930,9 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git
6930F: Documentation/RCU/ 6930F: Documentation/RCU/
6931X: Documentation/RCU/torture.txt 6931X: Documentation/RCU/torture.txt
6932F: include/linux/rcu* 6932F: include/linux/rcu*
6933F: kernel/rcu* 6933X: include/linux/srcu.h
6934X: kernel/rcutorture.c 6934F: kernel/rcu/
6935X: kernel/rcu/torture.c
6935 6936
6936REAL TIME CLOCK (RTC) SUBSYSTEM 6937REAL TIME CLOCK (RTC) SUBSYSTEM
6937M: Alessandro Zummo <a.zummo@towertech.it> 6938M: Alessandro Zummo <a.zummo@towertech.it>
@@ -7618,8 +7619,8 @@ M: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
7618W: http://www.rdrop.com/users/paulmck/RCU/ 7619W: http://www.rdrop.com/users/paulmck/RCU/
7619S: Supported 7620S: Supported
7620T: git git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git 7621T: git git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git
7621F: include/linux/srcu* 7622F: include/linux/srcu.h
7622F: kernel/srcu* 7623F: kernel/rcu/srcu.c
7623 7624
7624SMACK SECURITY MODULE 7625SMACK SECURITY MODULE
7625M: Casey Schaufler <casey@schaufler-ca.com> 7626M: Casey Schaufler <casey@schaufler-ca.com>
diff --git a/kernel/Makefile b/kernel/Makefile
index 1ce47553fb02..f99d908b5550 100644
--- a/kernel/Makefile
+++ b/kernel/Makefile
@@ -6,9 +6,9 @@ obj-y = fork.o exec_domain.o panic.o \
6 cpu.o exit.o itimer.o time.o softirq.o resource.o \ 6 cpu.o exit.o itimer.o time.o softirq.o resource.o \
7 sysctl.o sysctl_binary.o capability.o ptrace.o timer.o user.o \ 7 sysctl.o sysctl_binary.o capability.o ptrace.o timer.o user.o \
8 signal.o sys.o kmod.o workqueue.o pid.o task_work.o \ 8 signal.o sys.o kmod.o workqueue.o pid.o task_work.o \
9 rcupdate.o extable.o params.o posix-timers.o \ 9 extable.o params.o posix-timers.o \
10 kthread.o wait.o sys_ni.o posix-cpu-timers.o mutex.o \ 10 kthread.o wait.o sys_ni.o posix-cpu-timers.o mutex.o \
11 hrtimer.o rwsem.o nsproxy.o srcu.o semaphore.o \ 11 hrtimer.o rwsem.o nsproxy.o semaphore.o \
12 notifier.o ksysfs.o cred.o reboot.o \ 12 notifier.o ksysfs.o cred.o reboot.o \
13 async.o range.o groups.o lglock.o smpboot.o 13 async.o range.o groups.o lglock.o smpboot.o
14 14
@@ -27,6 +27,7 @@ obj-y += power/
27obj-y += printk/ 27obj-y += printk/
28obj-y += cpu/ 28obj-y += cpu/
29obj-y += irq/ 29obj-y += irq/
30obj-y += rcu/
30 31
31obj-$(CONFIG_CHECKPOINT_RESTORE) += kcmp.o 32obj-$(CONFIG_CHECKPOINT_RESTORE) += kcmp.o
32obj-$(CONFIG_FREEZER) += freezer.o 33obj-$(CONFIG_FREEZER) += freezer.o
@@ -81,12 +82,6 @@ obj-$(CONFIG_KGDB) += debug/
81obj-$(CONFIG_DETECT_HUNG_TASK) += hung_task.o 82obj-$(CONFIG_DETECT_HUNG_TASK) += hung_task.o
82obj-$(CONFIG_LOCKUP_DETECTOR) += watchdog.o 83obj-$(CONFIG_LOCKUP_DETECTOR) += watchdog.o
83obj-$(CONFIG_SECCOMP) += seccomp.o 84obj-$(CONFIG_SECCOMP) += seccomp.o
84obj-$(CONFIG_RCU_TORTURE_TEST) += rcutorture.o
85obj-$(CONFIG_TREE_RCU) += rcutree.o
86obj-$(CONFIG_TREE_PREEMPT_RCU) += rcutree.o
87obj-$(CONFIG_TREE_RCU_TRACE) += rcutree_trace.o
88obj-$(CONFIG_TINY_RCU) += rcutiny.o
89obj-$(CONFIG_TINY_PREEMPT_RCU) += rcutiny.o
90obj-$(CONFIG_RELAY) += relay.o 85obj-$(CONFIG_RELAY) += relay.o
91obj-$(CONFIG_SYSCTL) += utsname_sysctl.o 86obj-$(CONFIG_SYSCTL) += utsname_sysctl.o
92obj-$(CONFIG_TASK_DELAY_ACCT) += delayacct.o 87obj-$(CONFIG_TASK_DELAY_ACCT) += delayacct.o
diff --git a/kernel/rcu/Makefile b/kernel/rcu/Makefile
new file mode 100644
index 000000000000..01e9ec37a3e3
--- /dev/null
+++ b/kernel/rcu/Makefile
@@ -0,0 +1,6 @@
1obj-y += update.o srcu.o
2obj-$(CONFIG_RCU_TORTURE_TEST) += torture.o
3obj-$(CONFIG_TREE_RCU) += tree.o
4obj-$(CONFIG_TREE_PREEMPT_RCU) += tree.o
5obj-$(CONFIG_TREE_RCU_TRACE) += tree_trace.o
6obj-$(CONFIG_TINY_RCU) += tiny.o
diff --git a/kernel/rcu.h b/kernel/rcu/rcu.h
index 7859a0a3951e..7859a0a3951e 100644
--- a/kernel/rcu.h
+++ b/kernel/rcu/rcu.h
diff --git a/kernel/srcu.c b/kernel/rcu/srcu.c
index 01d5ccb8bfe3..01d5ccb8bfe3 100644
--- a/kernel/srcu.c
+++ b/kernel/rcu/srcu.c
diff --git a/kernel/rcutiny.c b/kernel/rcu/tiny.c
index 312e9709713f..0c9a934cfec1 100644
--- a/kernel/rcutiny.c
+++ b/kernel/rcu/tiny.c
@@ -43,7 +43,7 @@
43 43
44#include "rcu.h" 44#include "rcu.h"
45 45
46/* Forward declarations for rcutiny_plugin.h. */ 46/* Forward declarations for tiny_plugin.h. */
47struct rcu_ctrlblk; 47struct rcu_ctrlblk;
48static void __rcu_process_callbacks(struct rcu_ctrlblk *rcp); 48static void __rcu_process_callbacks(struct rcu_ctrlblk *rcp);
49static void rcu_process_callbacks(struct softirq_action *unused); 49static void rcu_process_callbacks(struct softirq_action *unused);
@@ -53,7 +53,7 @@ static void __call_rcu(struct rcu_head *head,
53 53
54static long long rcu_dynticks_nesting = DYNTICK_TASK_EXIT_IDLE; 54static long long rcu_dynticks_nesting = DYNTICK_TASK_EXIT_IDLE;
55 55
56#include "rcutiny_plugin.h" 56#include "tiny_plugin.h"
57 57
58/* Common code for rcu_idle_enter() and rcu_irq_exit(), see kernel/rcutree.c. */ 58/* Common code for rcu_idle_enter() and rcu_irq_exit(), see kernel/rcutree.c. */
59static void rcu_idle_enter_common(long long newval) 59static void rcu_idle_enter_common(long long newval)
@@ -67,7 +67,7 @@ static void rcu_idle_enter_common(long long newval)
67 RCU_TRACE(trace_rcu_dyntick(TPS("Start"), 67 RCU_TRACE(trace_rcu_dyntick(TPS("Start"),
68 rcu_dynticks_nesting, newval)); 68 rcu_dynticks_nesting, newval));
69 if (!is_idle_task(current)) { 69 if (!is_idle_task(current)) {
70 struct task_struct *idle = idle_task(smp_processor_id()); 70 struct task_struct *idle __maybe_unused = idle_task(smp_processor_id());
71 71
72 RCU_TRACE(trace_rcu_dyntick(TPS("Entry error: not idle task"), 72 RCU_TRACE(trace_rcu_dyntick(TPS("Entry error: not idle task"),
73 rcu_dynticks_nesting, newval)); 73 rcu_dynticks_nesting, newval));
@@ -128,7 +128,7 @@ static void rcu_idle_exit_common(long long oldval)
128 } 128 }
129 RCU_TRACE(trace_rcu_dyntick(TPS("End"), oldval, rcu_dynticks_nesting)); 129 RCU_TRACE(trace_rcu_dyntick(TPS("End"), oldval, rcu_dynticks_nesting));
130 if (!is_idle_task(current)) { 130 if (!is_idle_task(current)) {
131 struct task_struct *idle = idle_task(smp_processor_id()); 131 struct task_struct *idle __maybe_unused = idle_task(smp_processor_id());
132 132
133 RCU_TRACE(trace_rcu_dyntick(TPS("Exit error: not idle task"), 133 RCU_TRACE(trace_rcu_dyntick(TPS("Exit error: not idle task"),
134 oldval, rcu_dynticks_nesting)); 134 oldval, rcu_dynticks_nesting));
diff --git a/kernel/rcutiny_plugin.h b/kernel/rcu/tiny_plugin.h
index 280d06cae352..280d06cae352 100644
--- a/kernel/rcutiny_plugin.h
+++ b/kernel/rcu/tiny_plugin.h
diff --git a/kernel/rcutorture.c b/kernel/rcu/torture.c
index be63101c6175..3929cd451511 100644
--- a/kernel/rcutorture.c
+++ b/kernel/rcu/torture.c
@@ -52,6 +52,12 @@
52MODULE_LICENSE("GPL"); 52MODULE_LICENSE("GPL");
53MODULE_AUTHOR("Paul E. McKenney <paulmck@us.ibm.com> and Josh Triplett <josh@freedesktop.org>"); 53MODULE_AUTHOR("Paul E. McKenney <paulmck@us.ibm.com> and Josh Triplett <josh@freedesktop.org>");
54 54
55MODULE_ALIAS("rcutorture");
56#ifdef MODULE_PARAM_PREFIX
57#undef MODULE_PARAM_PREFIX
58#endif
59#define MODULE_PARAM_PREFIX "rcutorture."
60
55static int fqs_duration; 61static int fqs_duration;
56module_param(fqs_duration, int, 0444); 62module_param(fqs_duration, int, 0444);
57MODULE_PARM_DESC(fqs_duration, "Duration of fqs bursts (us), 0 to disable"); 63MODULE_PARM_DESC(fqs_duration, "Duration of fqs bursts (us), 0 to disable");
diff --git a/kernel/rcutree.c b/kernel/rcu/tree.c
index 240604aa3f70..8a2c81e86dda 100644
--- a/kernel/rcutree.c
+++ b/kernel/rcu/tree.c
@@ -41,6 +41,7 @@
41#include <linux/export.h> 41#include <linux/export.h>
42#include <linux/completion.h> 42#include <linux/completion.h>
43#include <linux/moduleparam.h> 43#include <linux/moduleparam.h>
44#include <linux/module.h>
44#include <linux/percpu.h> 45#include <linux/percpu.h>
45#include <linux/notifier.h> 46#include <linux/notifier.h>
46#include <linux/cpu.h> 47#include <linux/cpu.h>
@@ -56,11 +57,17 @@
56#include <linux/ftrace_event.h> 57#include <linux/ftrace_event.h>
57#include <linux/suspend.h> 58#include <linux/suspend.h>
58 59
59#include "rcutree.h" 60#include "tree.h"
60#include <trace/events/rcu.h> 61#include <trace/events/rcu.h>
61 62
62#include "rcu.h" 63#include "rcu.h"
63 64
65MODULE_ALIAS("rcutree");
66#ifdef MODULE_PARAM_PREFIX
67#undef MODULE_PARAM_PREFIX
68#endif
69#define MODULE_PARAM_PREFIX "rcutree."
70
64/* Data structures. */ 71/* Data structures. */
65 72
66static struct lock_class_key rcu_node_class[RCU_NUM_LVLS]; 73static struct lock_class_key rcu_node_class[RCU_NUM_LVLS];
@@ -3298,7 +3305,7 @@ static void __init rcu_init_one(struct rcu_state *rsp,
3298 3305
3299/* 3306/*
3300 * Compute the rcu_node tree geometry from kernel parameters. This cannot 3307 * Compute the rcu_node tree geometry from kernel parameters. This cannot
3301 * replace the definitions in rcutree.h because those are needed to size 3308 * replace the definitions in tree.h because those are needed to size
3302 * the ->node array in the rcu_state structure. 3309 * the ->node array in the rcu_state structure.
3303 */ 3310 */
3304static void __init rcu_init_geometry(void) 3311static void __init rcu_init_geometry(void)
@@ -3393,4 +3400,4 @@ void __init rcu_init(void)
3393 rcu_cpu_notify(NULL, CPU_UP_PREPARE, (void *)(long)cpu); 3400 rcu_cpu_notify(NULL, CPU_UP_PREPARE, (void *)(long)cpu);
3394} 3401}
3395 3402
3396#include "rcutree_plugin.h" 3403#include "tree_plugin.h"
diff --git a/kernel/rcutree.h b/kernel/rcu/tree.h
index 52be957c9fe2..52be957c9fe2 100644
--- a/kernel/rcutree.h
+++ b/kernel/rcu/tree.h
diff --git a/kernel/rcutree_plugin.h b/kernel/rcu/tree_plugin.h
index 8d85a5ce093a..3822ac0c4b27 100644
--- a/kernel/rcutree_plugin.h
+++ b/kernel/rcu/tree_plugin.h
@@ -28,7 +28,7 @@
28#include <linux/gfp.h> 28#include <linux/gfp.h>
29#include <linux/oom.h> 29#include <linux/oom.h>
30#include <linux/smpboot.h> 30#include <linux/smpboot.h>
31#include "time/tick-internal.h" 31#include "../time/tick-internal.h"
32 32
33#define RCU_KTHREAD_PRIO 1 33#define RCU_KTHREAD_PRIO 1
34 34
@@ -1133,7 +1133,7 @@ void exit_rcu(void)
1133 1133
1134#ifdef CONFIG_RCU_BOOST 1134#ifdef CONFIG_RCU_BOOST
1135 1135
1136#include "rtmutex_common.h" 1136#include "../rtmutex_common.h"
1137 1137
1138#ifdef CONFIG_RCU_TRACE 1138#ifdef CONFIG_RCU_TRACE
1139 1139
diff --git a/kernel/rcutree_trace.c b/kernel/rcu/tree_trace.c
index cf6c17412932..3596797b7e46 100644
--- a/kernel/rcutree_trace.c
+++ b/kernel/rcu/tree_trace.c
@@ -44,7 +44,7 @@
44#include <linux/seq_file.h> 44#include <linux/seq_file.h>
45 45
46#define RCU_TREE_NONCORE 46#define RCU_TREE_NONCORE
47#include "rcutree.h" 47#include "tree.h"
48 48
49static int r_open(struct inode *inode, struct file *file, 49static int r_open(struct inode *inode, struct file *file,
50 const struct seq_operations *op) 50 const struct seq_operations *op)
diff --git a/kernel/rcupdate.c b/kernel/rcu/update.c
index c07af1c4e1bb..6cb3dff89e2b 100644
--- a/kernel/rcupdate.c
+++ b/kernel/rcu/update.c
@@ -53,6 +53,12 @@
53 53
54#include "rcu.h" 54#include "rcu.h"
55 55
56MODULE_ALIAS("rcupdate");
57#ifdef MODULE_PARAM_PREFIX
58#undef MODULE_PARAM_PREFIX
59#endif
60#define MODULE_PARAM_PREFIX "rcupdate."
61
56module_param(rcu_expedited, int, 0); 62module_param(rcu_expedited, int, 0);
57 63
58#ifdef CONFIG_PREEMPT_RCU 64#ifdef CONFIG_PREEMPT_RCU