On Mon, Feb 26, 2024 at 11:28:57AM +0800, Z qiang wrote: > > > > The synchronize_srcu() has been removed by commit("rcu-tasks: Eliminate > > deadlocks involving do_exit() and RCU tasks") in rcu_tasks_postscan. > > This commit therefore fix the comments of tasks_rcu_exit_srcu_stall_timer. > > > > Signed-off-by: Zqiang <qiang.zhang1211@xxxxxxxxx> > > --- > > kernel/rcu/tasks.h | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/kernel/rcu/tasks.h b/kernel/rcu/tasks.h > > index 78d74c81cc24..d5319bbe8c98 100644 > > --- a/kernel/rcu/tasks.h > > +++ b/kernel/rcu/tasks.h > > @@ -150,7 +150,7 @@ static struct rcu_tasks rt_name = \ > > > > #ifdef CONFIG_TASKS_RCU > > > > -/* Report delay in synchronize_srcu() completion in rcu_tasks_postscan(). */ > > +/* Report delay of scan exiting tasklist in rcu_tasks_postscan(). */ > > static void tasks_rcu_exit_srcu_stall(struct timer_list *unused); > > static DEFINE_TIMER(tasks_rcu_exit_srcu_stall_timer, tasks_rcu_exit_srcu_stall); > > Is this timer not necessary? any thoughts? We have preemption points in the list traversals, and things like mutex contention on the do_exit() path could result in extremely long lists, so I believe we do need the timer. But what did you have in mind? Thanx, Paul > Thanks > Zqiang > > > > #endif > > -- > > 2.17.1 > >