Currently, for expedited rcu we only check 'rnp->exp_tasks', however the 'rnp->exp_tasks' are not always exist for expedited grace period that not end. this commit add 'rnp->expmask' condition. Signed-off-by: Zqiang <qiang1.zhang@xxxxxxxxx> --- kernel/rcu/tree_stall.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/kernel/rcu/tree_stall.h b/kernel/rcu/tree_stall.h index 2464b0eccfd0..5c4df855f2ac 100644 --- a/kernel/rcu/tree_stall.h +++ b/kernel/rcu/tree_stall.h @@ -865,13 +865,15 @@ void show_rcu_gp_kthreads(void) rcu_for_each_node_breadth_first(rnp) { if (ULONG_CMP_GE(READ_ONCE(rcu_state.gp_seq), READ_ONCE(rnp->gp_seq_needed)) && !data_race(READ_ONCE(rnp->qsmask)) && !data_race(READ_ONCE(rnp->boost_tasks)) && - !data_race(READ_ONCE(rnp->exp_tasks)) && !data_race(READ_ONCE(rnp->gp_tasks))) + !data_race(READ_ONCE(rnp->expmask)) && !data_race(READ_ONCE(rnp->exp_tasks)) && + !data_race(READ_ONCE(rnp->gp_tasks))) continue; - pr_info("\trcu_node %d:%d ->gp_seq %ld ->gp_seq_needed %ld ->qsmask %#lx %c%c%c%c ->n_boosts %ld\n", + pr_info("\trcu_node %d:%d ->gp_seq %ld ->gp_seq_needed %ld ->qsmask %#lx ->expmask %#lx %c%c%c%c ->n_boosts %ld\n", rnp->grplo, rnp->grphi, (long)data_race(READ_ONCE(rnp->gp_seq)), (long)data_race(READ_ONCE(rnp->gp_seq_needed)), data_race(READ_ONCE(rnp->qsmask)), + data_race(READ_ONCE(rnp->expmask)), ".b"[!!data_race(READ_ONCE(rnp->boost_kthread_task))], ".B"[!!data_race(READ_ONCE(rnp->boost_tasks))], ".E"[!!data_race(READ_ONCE(rnp->exp_tasks))], -- 2.25.1