On 5 September 2026 21:40:28 BST, "Paul E. McKenney" <[email protected]>
wrote:
>On Fri, Sep 04, 2026 at 06:28:45PM +0100, Bradley Morgan wrote:
>> On 4 September 2026 17:00:22 BST, "Paul E. McKenney"
><[email protected]>
>> wrote:
>> >On Fri, Sep 04, 2026 at 09:01:05AM -0400, Mathieu Desnoyers wrote:
>> >> On 2026-08-03 20:03, Bradley Morgan wrote:
>> >> > The do_pending kthread never sleeps. Its supposed to.
>> >> > kthread_do_pending_ms sets the gap between cleanups, and the docs
>> >> > say so too. But the sleep sits behind torture_must_stop(), and
>thats
>> >> > false while the test runs. So the kthread never sleeps. It just
>loops.
>> >> > It drains the pending lists over and over, no pause, and burns a
>full
>> >> > CPU for the whole test.
>> >> 
>> >> Paul, I just found this patch in my junk email folder. Maybe relevant
>> >> for you ?
>> >
>> >We got it in my -rcu tree:
>> >
>> >15b9fca2f5ce ("hazptrtorture: Fix inverted sleep condition in
>do_pending
>> >kthread")
>> >
>> >But I do appreciate your checking for missed patches, thank you!
>> >
>> >                                                    Thanx, Paul
>> >
>> >> Thanks,
>> >> 
>> >> Mathieu
>> >> 
>> >> > 
>> >> > Flip the check. With !torture_must_stop() it sleeps for
>> >> > kthread_do_pending_ms between passes. When the test stops it does
>one
>> >> > last cleanup and exits. Nothing left to do, so no sleep needed
>then.
>> >> > 
>> >> > Fixes: 94d2e93c222e ("hazptrtorture: Add kthread to release
>deferred
>> >hazard pointers")
>> >> > Signed-off-by: Bradley Morgan <[email protected]>
>> >> > ---
>> >> >   kernel/rcu/hazptrtorture.c | 2 +-
>> >> >   1 file changed, 1 insertion(+), 1 deletion(-)
>> >> > 
>> >> > diff --git a/kernel/rcu/hazptrtorture.c
>b/kernel/rcu/hazptrtorture.c
>> >> > index 72aeb50668e9..7c8b5899fb01 100644
>> >> > --- a/kernel/rcu/hazptrtorture.c
>> >> > +++ b/kernel/rcu/hazptrtorture.c
>> >> > @@ -555,7 +555,7 @@ static int hazptr_torture_do_pending(void *arg)
>> >> >                         cpu = cpumask_next_wrap(cpu, cpu_possible_mask);
>> >> >                         hazptr_torture_do_one_pending(cpu, &rand);
>> >> >                 }
>> >> > -               if (torture_must_stop())
>> >> > +               if (!torture_must_stop())
>> >> >                         torture_hrtimeout_ms(kthread_do_pending_ms, 
>> >> > USEC_PER_MSEC, &rand);
>> >> >                 // Omit stutter_wait() because this function needs to 
>> >> > do cleanup.
>> >> >         } while (!torture_must_stop());
>> >> 
>> >> 
>> >> -- 
>> >> Mathieu Desnoyers
>> >> EfficiOS Inc.
>> >> https://www.efficios.com
>> >
>> >
>> Hi, new email.
>> 
>> Could I ask where the heck hazptr is? Its not in next, would you like,
>> help???
>> 
>> --- Thanks!
>>
>https://lore.kernel.org/all/[email protected]/
>
>It is still in my -rcu tree.
>
>I would not say "no" to a fix for this issue:
>
>https://lore.kernel.org/all/[email protected]/
>
>Once that is in place, I would be happy to put this back into -next.
>
>At some point, we will need to get rid of the concept of wildcard hazard
>pointers, as those end up instead emulating RCU, but I don't see that
>as an immediate obstacle.


Well, okay, tell me more and I'll develop it.

>
>                                                       Thanx, Paul

--- Thanks!
https://lore.kernel.org/all/[email protected]/

Reply via email to