Re: [PATCH RFC -rcu/dev] hazptr: Record per-CPU slot owner after claiming the slot

From: Paul E. McKenney

Date: Wed Oct 21 2026 - 22:20:47 EST


On Wed, Oct 21, 2026 at 11:07:52AM +0200, Andrea Parri wrote:
> On Tue, Oct 20, 2026 at 02:12:09PM -0700, Paul E. McKenney wrote:
>
> [...]
>
> > Thank you all! Queued for testing and further review.
>
> Thank you!
>
> > Andrea, on your KUNIT reproducer, is there any chance that this code
> > can be folded into the existing hazptrtorture.c work so that it just
> > gets tested automatically?
>
> Yes, though not as it is: the KUnit test relies on a test-only hook
> in __hazptr_try_acquire(), which I would rather not add to hazptr.h.
> hazptrtorture already has the interrupt side, in
> hazptr_torture_acquire(), but its readers rarely reach
> __hazptr_acquire(), where the race is.
>
> So v1 of the hazptrtorture series will add, as patches 2 and 3:
>
> - two CONFIG_HAZPTR_DEBUG checks of the recorded slot owner, in
> hazptr_release_debug() and hazptr_note_context_switch(), and
>
> - a nest_acquire module parameter (default 2) that makes readers
> take a second, nested hazard pointer through __hazptr_acquire().
>
> Without the fix, PREEMPT and NOPREEMPT then report the race about 6
> seconds after boot; with nest_acquire=0, they run 10 minutes without
> a report. The nesting costs about 30% of the readers' loop
> iterations, so it could instead default to zero and be enabled from
> the scenario files, if you prefer.

This sounds like a good approach, and I am looking forward to seeing
what you come up with.

Thanx, Paul