On Thu, Aug 27, 2020 at 03:57:22PM -0400, Cameron wrote: > On Thu, Aug 27, 2020 at 3:08 PM Boqun Feng <boqun.feng@xxxxxxxxx> wrote: > > So if try_cmpxchg_acquire() fails, we don't have ACQUIRE semantics on > > read of the new list->head, right? Then probably a > > smp_mb__after_atomic() is needed in that case? > > Yes, there needs to be an acquire on the head after a failed cmpxchg; > does the atomic_fetch_add following that not have acquire semantics? > Yes, you're right, the atomic_fecth_add() following is a fully-ordered atomic, so could provide the necessary ACQUIRE semantics. I was missing that. Maybe a few words explaining this helps. Regards, Boqun > Cameron