Re: [RFC PATCH v3 3/4] hazptr: Implement Hazard Pointers
From: Mathieu Desnoyers
Date: Tue Oct 08 2024 - 13:07:38 EST
On 2024-10-08 15:50, Mathieu Desnoyers wrote:
[...]
+/* Retire the protected hazard pointer from @slot. */
+static inline
+void hazptr_retire(struct hazptr_slot *slot, void *addr)
+{
+ WARN_ON_ONCE(slot->addr != addr);
+ smp_store_release(&slot->addr, NULL);
+}
Actually, comparing this with the literature and past presentations
from Maged Michael, "retire" is not the appropriate name here.
With Hazard Pointers, AFAIU, the "retire" operation is similar to a
call_rcu() memory reclaim. It marks the object for eventual reclamation
when it is safe to do so.
The API here really just releases the recently protected hazard
pointer. So I will rename this to "hazptr_release()".
At this stage, this hazptr API does not implement any retire operation,
and only offers the hazptr_scan() for reader/updater synchronization,
leaving the actual reclaim to the caller.
Thanks,
Mathieu
--
Mathieu Desnoyers
EfficiOS Inc.
https://www.efficios.com