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

Paul E. McKenney
2024-02-22T22:09:18Z

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.

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
> >
> >
>