2024-02-26 03:24:59

by Zqiang

[permalink] [raw]
Subject: [PATCH] rcu-tasks: Fix the comments for tasks_rcu_exit_srcu_stall_timer

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 <[email protected]>
---
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);
#endif
--
2.17.1



2024-02-26 03:29:19

by Zqiang

[permalink] [raw]
Subject: Re: [PATCH] rcu-tasks: Fix the comments for tasks_rcu_exit_srcu_stall_timer

>
> 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 <[email protected]>
> ---
> 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?

Thanks
Zqiang


> #endif
> --
> 2.17.1
>

2024-02-26 18:56:34

by Paul E. McKenney

[permalink] [raw]
Subject: Re: [PATCH] rcu-tasks: Fix the comments for tasks_rcu_exit_srcu_stall_timer

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 <[email protected]>
> > ---
> > 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
> >

2024-02-26 19:25:26

by Paul E. McKenney

[permalink] [raw]
Subject: Re: [PATCH] rcu-tasks: Fix the comments for tasks_rcu_exit_srcu_stall_timer

On Mon, Feb 26, 2024 at 11:24:39AM +0800, Zqiang 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 <[email protected]>

Queued, most likely for the v6.10 merge window, thank you!

Thanx, Paul

> ---
> 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);
> #endif
> --
> 2.17.1
>

2024-02-27 06:08:20

by Zqiang

[permalink] [raw]
Subject: Re: [PATCH] rcu-tasks: Fix the comments for tasks_rcu_exit_srcu_stall_timer

>
> 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 <[email protected]>
> > > ---
> > > 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?

Thanks for the explanation, I ignored the scenario where the
lists might be very long :)

Thanks
Zqiang

>
> Thanx, Paul
>
> > Thanks
> > Zqiang
> >
> >
> > > #endif
> > > --
> > > 2.17.1
> > >