Messages in this thread | | | Date | Sat, 5 May 2018 17:27:25 +0800 | From | Herbert Xu <> | Subject | Re: [PATCH 3/8] rhashtable: use cmpxchg() to protect ->future_tbl. |
| |
On Fri, May 04, 2018 at 01:54:14PM +1000, NeilBrown wrote: > Rather than borrowing one of the bucket locks to > protect ->future_tbl updates, use cmpxchg(). > This gives more freedom to change how bucket locking > is implemented. > > Signed-off-by: NeilBrown <neilb@suse.com>
This looks nice.
> - spin_unlock_bh(old_tbl->locks); > + rcu_assign_pointer(tmp, new_tbl);
Do we need this barrier since cmpxchg is supposed to provide memory barrier semantics?
> + if (cmpxchg(&old_tbl->future_tbl, NULL, tmp) != NULL) > + return -EEXIST;
Thanks, -- Email: Herbert Xu <herbert@gondor.apana.org.au> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
| |