Messages in this thread Patch in this message | | | From | Zqiang <> | Subject | [PATCH] rcu: Remove duplicate RCU exp QS report from rcu_report_dead() | Date | Tue, 30 Aug 2022 16:31:51 +0800 |
| |
For PREEMPT_RCU, the rcu_report_dead() is invoked means that the outgoing CPU mask is clear from leaf rcu_node and has no further need of RCU, so invoke rcu_preempt_depth() return value is always zero in rcu_report_dead(), if the current outgoing CPU rcu_data structure's cpu_no_qs.b.exp is true, the rcu_preempt_deferred_qs() will invoke rcu_report_exp_rdp() to report exp QS.
for non-PREEMPT_RCU, the rcu_preempt_deferred_qs() is equivalent to rcu_report_exp_rdp().
Signed-off-by: Zqiang <qiang1.zhang@intel.com> --- kernel/rcu/tree.c | 2 -- 1 file changed, 2 deletions(-)
diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index 6bb8e72bc815..0ca21ac0f064 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c @@ -4276,8 +4276,6 @@ void rcu_report_dead(unsigned int cpu) // Do any dangling deferred wakeups. do_nocb_deferred_wakeup(rdp); - /* QS for any half-done expedited grace period. */ - rcu_report_exp_rdp(rdp); rcu_preempt_deferred_qs(current); /* Remove outgoing CPU from mask in the leaf rcu_node structure. */ -- 2.25.1
| |