tree.c (c98cac603f1ce7d00e2a802b5640bced3bc3c1f2) tree.c (fb60e533beab3bf27adc0e39e03337e7584c6d5a)
1/*
2 * Read-Copy Update mechanism for mutual exclusion
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *

--- 2728 unchanged lines hidden (view full) ---

2737 max_cbs = cbs;
2738 max_cpu = cpu;
2739 }
2740 if (max_cpu >= 0)
2741 pr_cont("\n");
2742}
2743EXPORT_SYMBOL_GPL(rcu_fwd_progress_check);
2744
1/*
2 * Read-Copy Update mechanism for mutual exclusion
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *

--- 2728 unchanged lines hidden (view full) ---

2737 max_cbs = cbs;
2738 max_cpu = cpu;
2739 }
2740 if (max_cpu >= 0)
2741 pr_cont("\n");
2742}
2743EXPORT_SYMBOL_GPL(rcu_fwd_progress_check);
2744
2745/*
2746 * This does the RCU core processing work for the specified rcu_data
2747 * structures. This may be called only from the CPU to whom the rdp
2748 * belongs.
2749 */
2750static __latent_entropy void rcu_process_callbacks(struct softirq_action *unused)
2745/* Perform RCU core processing work for the current CPU. */
2746static __latent_entropy void rcu_core(struct softirq_action *unused)
2751{
2752 unsigned long flags;
2753 struct rcu_data *rdp = raw_cpu_ptr(&rcu_data);
2754 struct rcu_node *rnp = rdp->mynode;
2755
2756 if (cpu_is_offline(smp_processor_id()))
2757 return;
2758 trace_rcu_utilization(TPS("Start RCU core"));

--- 1092 unchanged lines hidden (view full) ---

3851
3852 rcu_early_boot_tests();
3853
3854 rcu_bootup_announce();
3855 rcu_init_geometry();
3856 rcu_init_one();
3857 if (dump_tree)
3858 rcu_dump_rcu_node_tree();
2747{
2748 unsigned long flags;
2749 struct rcu_data *rdp = raw_cpu_ptr(&rcu_data);
2750 struct rcu_node *rnp = rdp->mynode;
2751
2752 if (cpu_is_offline(smp_processor_id()))
2753 return;
2754 trace_rcu_utilization(TPS("Start RCU core"));

--- 1092 unchanged lines hidden (view full) ---

3847
3848 rcu_early_boot_tests();
3849
3850 rcu_bootup_announce();
3851 rcu_init_geometry();
3852 rcu_init_one();
3853 if (dump_tree)
3854 rcu_dump_rcu_node_tree();
3859 open_softirq(RCU_SOFTIRQ, rcu_process_callbacks);
3855 open_softirq(RCU_SOFTIRQ, rcu_core);
3860
3861 /*
3862 * We don't need protection against CPU-hotplug here because
3863 * this is called early in boot, before either interrupts
3864 * or the scheduler are operational.
3865 */
3866 pm_notifier(rcu_pm_notify, 0);
3867 for_each_online_cpu(cpu) {

--- 15 unchanged lines hidden ---
3856
3857 /*
3858 * We don't need protection against CPU-hotplug here because
3859 * this is called early in boot, before either interrupts
3860 * or the scheduler are operational.
3861 */
3862 pm_notifier(rcu_pm_notify, 0);
3863 for_each_online_cpu(cpu) {

--- 15 unchanged lines hidden ---