On Sun, Oct 11, 2026 at 03:48:46PM -0400, Mathieu Desnoyers wrote:
> Hi Paul,
>
> This series applies on top of "hazptr: handle NULL address in
> hazptr_detach" you have in your rcu dev tree.
>
> This first patch addresses a race identified by Boqun Feng in the
> two-phase wildcard scheme. (no change since the last series)
>
> Patches 2-3 are prerequisites for using ptr_eq() in the 4th patch.
> Those were discussed at length in a prior version of hazard pointer
> patches.
>
> Since the last series, I have renamed ptreq.h to ptr_eq.h, addressing
> the feedback received from Boqun and Gary.
>
> Patch 4 introduces a "try acquire" helper to allow the fast path
> to not rely on wildcards, while keeping the wildcard forward
> progress guarantees in the acquire slow path, used on fast path
> failure.
I have pulled this in for additional review and testing, thank you!
(With Bradley's Reviewed-by on 4/4.) Still subject to rebase, which means
that I can easily replace it with an updated series from you, if you wish.
But in the meantime, some additional testing. ;-)
Thanx, Paul
> Thanks,
>
> Mathieu
>
> Mathieu Desnoyers (4):
> hazptr: Fix two-phase hazptr_synchronize race with detach
> ptr_eq.h: Introduce ptr_eq() to preserve address dependency
> Documentation: RCU: Refer to ptr_eq()
> hazptr: Introduce "try acquire" fast path, fallback to overflow list
>
> Cc: Paul E. McKenney <[email protected]>
> Cc: Boqun Feng <[email protected]>
> Cc: Bradley Morgan <[email protected]>
> Cc: Gary Guo <[email protected]>
> Cc: <[email protected]>
> Cc: <[email protected]>
> Cc: Lian Wang <[email protected]>
> Cc: Kunwu Chan <[email protected]>
>
> Documentation/RCU/rcu_dereference.rst | 38 +++++++-
> arch/x86/include/asm/ptr_eq.h | 16 +++
> include/asm-generic/Kbuild | 1 +
> include/asm-generic/ptr_eq.h | 16 +++
> include/linux/hazptr.h | 48 +++++----
> include/linux/ptr_eq.h | 63 ++++++++++++
> kernel/hazptr.c | 135 +++++++++++++++-----------
> 7 files changed, 237 insertions(+), 80 deletions(-)
> create mode 100644 arch/x86/include/asm/ptr_eq.h
> create mode 100644 include/asm-generic/ptr_eq.h
> create mode 100644 include/linux/ptr_eq.h
>
> --
> 2.43.0
>