rculfhash: avoid unneed garbage collect
[ Edit by Mathieu Desnoyers:
If we have a concurrent removal executing while the add is performed,
I just want to ensure we agree that this scenario will be correct:
1) removal succeeds. We have flagged
a node as "logically removed", but
it is still in the linked list.
2) garbage collection is initiated.
3) add succeeds. We insert a
node with reverse hash value
higher than the logically
removed node. This means the
add takes care of garbage
collecting the logically
removed node prior to adding
the new node.
4) garbage collection of logically
removed node fails
(we ignore the return value of
(void) uatomic_cmpxchg(&iter_prev->p.next, iter, new_next);)
retry and iterate until we find the reverse
hash value higher than the logically
remove node.
So I think this is OK: given that the add path takes care of garbage
collecting any logically removed node located prior to the insert
position, we don't need to perform gargage collection after the
insertion. ]
Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
This page took 0.028827 seconds and 4 git commands to generate.