Re: [PATCH tip/core/rcu 1/9] rcu: Upgrade rcu_swap_protected() to rcu_replace()

From: Steven Rostedt
Date: Thu Oct 03 2019 - 09:08:55 EST


On Thu, 03 Oct 2019 09:39:17 +0100
David Howells <dhowells@xxxxxxxxxx> wrote:

> paulmck@xxxxxxxxxx wrote:
>
> > +#define rcu_replace(rcu_ptr, ptr, c) \
> > +({ \
> > + typeof(ptr) __tmp = rcu_dereference_protected((rcu_ptr), (c)); \
> > + rcu_assign_pointer((rcu_ptr), (ptr)); \
> > + __tmp; \
> > +})
>
> Does it make sense to actually use xchg() if that's supported by the arch?
>

Hmm, is there really any arch that doesn't support xchg()? It would be
very hard to do any kind of atomic operations without it.

cmpxchg() is the one that I understand is optional by the arch.

-- Steve