diff options
-rw-r--r-- | Documentation/DocBook/device-drivers.tmpl | 5 | ||||
-rw-r--r-- | Documentation/kernel-parameters.txt | 95 | ||||
-rw-r--r-- | MAINTAINERS | 11 | ||||
-rw-r--r-- | kernel/Makefile | 11 | ||||
-rw-r--r-- | kernel/rcu/Makefile | 6 | ||||
-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> | |||
6903 | S: Supported | 6903 | S: Supported |
6904 | T: git git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git | 6904 | T: git git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git |
6905 | F: Documentation/RCU/torture.txt | 6905 | F: Documentation/RCU/torture.txt |
6906 | F: kernel/rcutorture.c | 6906 | F: kernel/rcu/torture.c |
6907 | 6907 | ||
6908 | RDC R-321X SoC | 6908 | RDC R-321X SoC |
6909 | M: Florian Fainelli <florian@openwrt.org> | 6909 | M: Florian Fainelli <florian@openwrt.org> |
@@ -6930,8 +6930,9 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git | |||
6930 | F: Documentation/RCU/ | 6930 | F: Documentation/RCU/ |
6931 | X: Documentation/RCU/torture.txt | 6931 | X: Documentation/RCU/torture.txt |
6932 | F: include/linux/rcu* | 6932 | F: include/linux/rcu* |
6933 | F: kernel/rcu* | 6933 | X: include/linux/srcu.h |
6934 | X: kernel/rcutorture.c | 6934 | F: kernel/rcu/ |
6935 | X: kernel/rcu/torture.c | ||
6935 | 6936 | ||
6936 | REAL TIME CLOCK (RTC) SUBSYSTEM | 6937 | REAL TIME CLOCK (RTC) SUBSYSTEM |
6937 | M: Alessandro Zummo <a.zummo@towertech.it> | 6938 | M: Alessandro Zummo <a.zummo@towertech.it> |
@@ -7618,8 +7619,8 @@ M: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> | |||
7618 | W: http://www.rdrop.com/users/paulmck/RCU/ | 7619 | W: http://www.rdrop.com/users/paulmck/RCU/ |
7619 | S: Supported | 7620 | S: Supported |
7620 | T: git git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git | 7621 | T: git git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git |
7621 | F: include/linux/srcu* | 7622 | F: include/linux/srcu.h |
7622 | F: kernel/srcu* | 7623 | F: kernel/rcu/srcu.c |
7623 | 7624 | ||
7624 | SMACK SECURITY MODULE | 7625 | SMACK SECURITY MODULE |
7625 | M: Casey Schaufler <casey@schaufler-ca.com> | 7626 | M: 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/ | |||
27 | obj-y += printk/ | 27 | obj-y += printk/ |
28 | obj-y += cpu/ | 28 | obj-y += cpu/ |
29 | obj-y += irq/ | 29 | obj-y += irq/ |
30 | obj-y += rcu/ | ||
30 | 31 | ||
31 | obj-$(CONFIG_CHECKPOINT_RESTORE) += kcmp.o | 32 | obj-$(CONFIG_CHECKPOINT_RESTORE) += kcmp.o |
32 | obj-$(CONFIG_FREEZER) += freezer.o | 33 | obj-$(CONFIG_FREEZER) += freezer.o |
@@ -81,12 +82,6 @@ obj-$(CONFIG_KGDB) += debug/ | |||
81 | obj-$(CONFIG_DETECT_HUNG_TASK) += hung_task.o | 82 | obj-$(CONFIG_DETECT_HUNG_TASK) += hung_task.o |
82 | obj-$(CONFIG_LOCKUP_DETECTOR) += watchdog.o | 83 | obj-$(CONFIG_LOCKUP_DETECTOR) += watchdog.o |
83 | obj-$(CONFIG_SECCOMP) += seccomp.o | 84 | obj-$(CONFIG_SECCOMP) += seccomp.o |
84 | obj-$(CONFIG_RCU_TORTURE_TEST) += rcutorture.o | ||
85 | obj-$(CONFIG_TREE_RCU) += rcutree.o | ||
86 | obj-$(CONFIG_TREE_PREEMPT_RCU) += rcutree.o | ||
87 | obj-$(CONFIG_TREE_RCU_TRACE) += rcutree_trace.o | ||
88 | obj-$(CONFIG_TINY_RCU) += rcutiny.o | ||
89 | obj-$(CONFIG_TINY_PREEMPT_RCU) += rcutiny.o | ||
90 | obj-$(CONFIG_RELAY) += relay.o | 85 | obj-$(CONFIG_RELAY) += relay.o |
91 | obj-$(CONFIG_SYSCTL) += utsname_sysctl.o | 86 | obj-$(CONFIG_SYSCTL) += utsname_sysctl.o |
92 | obj-$(CONFIG_TASK_DELAY_ACCT) += delayacct.o | 87 | obj-$(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 @@ | |||
1 | obj-y += update.o srcu.o | ||
2 | obj-$(CONFIG_RCU_TORTURE_TEST) += torture.o | ||
3 | obj-$(CONFIG_TREE_RCU) += tree.o | ||
4 | obj-$(CONFIG_TREE_PREEMPT_RCU) += tree.o | ||
5 | obj-$(CONFIG_TREE_RCU_TRACE) += tree_trace.o | ||
6 | obj-$(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. */ |
47 | struct rcu_ctrlblk; | 47 | struct rcu_ctrlblk; |
48 | static void __rcu_process_callbacks(struct rcu_ctrlblk *rcp); | 48 | static void __rcu_process_callbacks(struct rcu_ctrlblk *rcp); |
49 | static void rcu_process_callbacks(struct softirq_action *unused); | 49 | static void rcu_process_callbacks(struct softirq_action *unused); |
@@ -53,7 +53,7 @@ static void __call_rcu(struct rcu_head *head, | |||
53 | 53 | ||
54 | static long long rcu_dynticks_nesting = DYNTICK_TASK_EXIT_IDLE; | 54 | static 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. */ |
59 | static void rcu_idle_enter_common(long long newval) | 59 | static 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 @@ | |||
52 | MODULE_LICENSE("GPL"); | 52 | MODULE_LICENSE("GPL"); |
53 | MODULE_AUTHOR("Paul E. McKenney <paulmck@us.ibm.com> and Josh Triplett <josh@freedesktop.org>"); | 53 | MODULE_AUTHOR("Paul E. McKenney <paulmck@us.ibm.com> and Josh Triplett <josh@freedesktop.org>"); |
54 | 54 | ||
55 | MODULE_ALIAS("rcutorture"); | ||
56 | #ifdef MODULE_PARAM_PREFIX | ||
57 | #undef MODULE_PARAM_PREFIX | ||
58 | #endif | ||
59 | #define MODULE_PARAM_PREFIX "rcutorture." | ||
60 | |||
55 | static int fqs_duration; | 61 | static int fqs_duration; |
56 | module_param(fqs_duration, int, 0444); | 62 | module_param(fqs_duration, int, 0444); |
57 | MODULE_PARM_DESC(fqs_duration, "Duration of fqs bursts (us), 0 to disable"); | 63 | MODULE_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 | ||
65 | MODULE_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 | ||
66 | static struct lock_class_key rcu_node_class[RCU_NUM_LVLS]; | 73 | static 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 | */ |
3304 | static void __init rcu_init_geometry(void) | 3311 | static 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 | ||
49 | static int r_open(struct inode *inode, struct file *file, | 49 | static 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 | ||
56 | MODULE_ALIAS("rcupdate"); | ||
57 | #ifdef MODULE_PARAM_PREFIX | ||
58 | #undef MODULE_PARAM_PREFIX | ||
59 | #endif | ||
60 | #define MODULE_PARAM_PREFIX "rcupdate." | ||
61 | |||
56 | module_param(rcu_expedited, int, 0); | 62 | module_param(rcu_expedited, int, 0); |
57 | 63 | ||
58 | #ifdef CONFIG_PREEMPT_RCU | 64 | #ifdef CONFIG_PREEMPT_RCU |