Messages in this thread | | | Date | Mon, 1 Aug 2022 16:14:15 -0700 | From | "Paul E. McKenney" <> | Subject | Re: [PATCH v3 1/3] rcu/exp: Use NMI to get the backtrace of cpu_curr(other_cpu) first |
| |
On Sat, Jul 30, 2022 at 06:23:28PM +0800, Zhen Lei wrote: > The backtrace of cpu_curr(other_cpu) is unwinded based on the 'fp' saved > during its last switch-out. For the most part, it's out of date. So try > to use NMI to get the backtrace first, just like those functions in > "tree_stall.h" did. Such as rcu_dump_cpu_stacks(). > > Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com>
Much better, thank you!
> --- > kernel/rcu/tree_exp.h | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/kernel/rcu/tree_exp.h b/kernel/rcu/tree_exp.h > index 0f70f62039a9090..21381697de23f0b 100644 > --- a/kernel/rcu/tree_exp.h > +++ b/kernel/rcu/tree_exp.h > @@ -665,7 +665,8 @@ static void synchronize_rcu_expedited_wait(void) > mask = leaf_node_cpu_bit(rnp, cpu); > if (!(READ_ONCE(rnp->expmask) & mask)) > continue; > - dump_cpu_task(cpu); > + if (!trigger_single_cpu_backtrace(cpu)) > + dump_cpu_task(cpu);
But why not just leave this unchanged, rather than adding the call to trigger_single_cpu_backtrace() in this patch and then removing it in the next patch?
Thanx, Paul
> } > } > jiffies_stall = 3 * rcu_exp_jiffies_till_stall_check() + 3; > -- > 2.25.1 >
| |