Loading kernel/rcu/tree.c +3 −17 Original line number Diff line number Diff line Loading @@ -147,7 +147,6 @@ static void rcu_init_new_rnp(struct rcu_node *rnp_leaf); static void rcu_cleanup_dead_rnp(struct rcu_node *rnp_leaf); static void rcu_boost_kthread_setaffinity(struct rcu_node *rnp, int outgoingcpu); static void invoke_rcu_core(void); static void invoke_rcu_callbacks(struct rcu_data *rdp); static void rcu_report_exp_rdp(struct rcu_data *rdp); static void sync_sched_exp_online_cleanup(int cpu); Loading Loading @@ -2296,8 +2295,9 @@ static __latent_entropy void rcu_core(void) rcu_check_gp_start_stall(rnp, rdp, rcu_jiffies_till_stall_check()); /* If there are callbacks ready, invoke them. */ if (rcu_segcblist_ready_cbs(&rdp->cblist)) invoke_rcu_callbacks(rdp); if (rcu_segcblist_ready_cbs(&rdp->cblist) && likely(READ_ONCE(rcu_scheduler_fully_active))) rcu_do_batch(rdp); /* Do any needed deferred wakeups of rcuo kthreads. */ do_nocb_deferred_wakeup(rdp); Loading Loading @@ -2332,20 +2332,6 @@ static void invoke_rcu_core_kthread(void) local_irq_restore(flags); } /* * Do RCU callback invocation. Not that if we are running !use_softirq, * we are already in the rcuc kthread. If callbacks are offloaded, then * ->cblist is always empty, so we don't get here. Therefore, we only * ever need to check for the scheduler being operational (some callbacks * do wakeups, so we do need the scheduler). */ static void invoke_rcu_callbacks(struct rcu_data *rdp) { if (unlikely(!READ_ONCE(rcu_scheduler_fully_active))) return; rcu_do_batch(rdp); } /* * Wake up this CPU's rcuc kthread to do RCU core processing. */ Loading Loading
kernel/rcu/tree.c +3 −17 Original line number Diff line number Diff line Loading @@ -147,7 +147,6 @@ static void rcu_init_new_rnp(struct rcu_node *rnp_leaf); static void rcu_cleanup_dead_rnp(struct rcu_node *rnp_leaf); static void rcu_boost_kthread_setaffinity(struct rcu_node *rnp, int outgoingcpu); static void invoke_rcu_core(void); static void invoke_rcu_callbacks(struct rcu_data *rdp); static void rcu_report_exp_rdp(struct rcu_data *rdp); static void sync_sched_exp_online_cleanup(int cpu); Loading Loading @@ -2296,8 +2295,9 @@ static __latent_entropy void rcu_core(void) rcu_check_gp_start_stall(rnp, rdp, rcu_jiffies_till_stall_check()); /* If there are callbacks ready, invoke them. */ if (rcu_segcblist_ready_cbs(&rdp->cblist)) invoke_rcu_callbacks(rdp); if (rcu_segcblist_ready_cbs(&rdp->cblist) && likely(READ_ONCE(rcu_scheduler_fully_active))) rcu_do_batch(rdp); /* Do any needed deferred wakeups of rcuo kthreads. */ do_nocb_deferred_wakeup(rdp); Loading Loading @@ -2332,20 +2332,6 @@ static void invoke_rcu_core_kthread(void) local_irq_restore(flags); } /* * Do RCU callback invocation. Not that if we are running !use_softirq, * we are already in the rcuc kthread. If callbacks are offloaded, then * ->cblist is always empty, so we don't get here. Therefore, we only * ever need to check for the scheduler being operational (some callbacks * do wakeups, so we do need the scheduler). */ static void invoke_rcu_callbacks(struct rcu_data *rdp) { if (unlikely(!READ_ONCE(rcu_scheduler_fully_active))) return; rcu_do_batch(rdp); } /* * Wake up this CPU's rcuc kthread to do RCU core processing. */ Loading