Re: [PATCH] rcu-tasks: Remove unnecessary lazy_jiffies in call_rcu_tasks_generic_timer()

From: Paul E. McKenney
Date: Tue Mar 12 2024 - 18:05:28 EST


On Tue, Mar 12, 2024 at 07:35:24PM +0800, Zqiang wrote:
> The rcu_tasks_percpu structure's->lazy_timer is queued only when
> the rcu_tasks structure's->lazy_jiffies is not equal to zero in
> call_rcu_tasks_generic(), if the lazy_timer callback is invoked,
> that means the lazy_jiffes is not equal to zero, this commit
> therefore remove lazy_jiffies check in call_rcu_tasks_generic_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 b1254cf3c210..439e0b9a2656 100644
> --- a/kernel/rcu/tasks.h
> +++ b/kernel/rcu/tasks.h
> @@ -299,7 +299,7 @@ static void call_rcu_tasks_generic_timer(struct timer_list *tlp)
>
> rtp = rtpcp->rtpp;
> raw_spin_lock_irqsave_rcu_node(rtpcp, flags);
> - if (!rcu_segcblist_empty(&rtpcp->cblist) && rtp->lazy_jiffies) {
> + if (!rcu_segcblist_empty(&rtpcp->cblist)) {

Good eyes!

But did you test with something like a WARN_ON_ONCE(rtp->lazy_jiffies)?

Thanx, Paul

> if (!rtpcp->urgent_gp)
> rtpcp->urgent_gp = 1;
> needwake = true;
> --
> 2.17.1
>