Re: [PATCH v2 0/6] RCU tasks fixes for v6.9

Frederic Weisbecker
2024-02-23T12:25:09Z

On Thu, Feb 22, 2024 at 02:09:17PM -0800, Paul E. McKenney wrote:
> On Thu, Feb 22, 2024 at 05:52:23PM +0100, Frederic Weisbecker wrote:
> > Le Fri, Feb 16, 2024 at 05:27:35PM -0800, Boqun Feng a écrit :
> > > Hi,
> > >
> > > This series contains the fixes of RCU tasks for v6.9. You can also find
> > > the series at:
> > >
> > > git://git.kernel.org/pub/scm/linux/kernel/git/boqun/linux.git rcu-tasks.2024.02.14a
> > >
> > > Changes since v1:
> > >
> > > * Update with Paul's rework on "Eliminate deadlocks involving
> > > do_exit() and RCU task"
> > >
> > > The detailed list of changes:
> > >
> > > Paul E. McKenney (6):
> > > rcu-tasks: Repair RCU Tasks Trace quiescence check
> > > rcu-tasks: Add data to eliminate RCU-tasks/do_exit() deadlocks
> > > rcu-tasks: Initialize data to eliminate RCU-tasks/do_exit() deadlocks
> > > rcu-tasks: Maintain lists to eliminate RCU-tasks/do_exit() deadlocks
> > > rcu-tasks: Eliminate deadlocks involving do_exit() and RCU tasks
> >
> > Food for later thoughts and further improvements: would it make sense to
> > call exit_rcu_tasks_start() on fork() instead and rely solely on
> > each CPUs' rtp_exit_list instead of the tasklist?
>
> It might well.
>
> One big advantage of doing that is the ability to incrementally traverse
> the tasks. But is there some good way of doing that to the full task
> lists? If so, everyone could benefit.

What do you mean by incrementally? You mean being able to cond_resched()
in the middle of the tasks iteration? Yeah not sure that's possible...

Thanks.

>
> Thanx, Paul
>
> > Thanks.
> >
> > > rcu-tasks: Maintain real-time response in rcu_tasks_postscan()
> > >
> > > include/linux/rcupdate.h | 4 +-
> > > include/linux/sched.h | 2 +
> > > init/init_task.c | 1 +
> > > kernel/fork.c | 1 +
> > > kernel/rcu/tasks.h | 110 ++++++++++++++++++++++++++++++---------
> > > 5 files changed, 90 insertions(+), 28 deletions(-)
> > >
> > > --
> > > 2.43.0
> > >
> > >
> >