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 --- |