Re: [PATCH RFC LKMM 1/7] tools/memory-model: Add extra ordering for locks and remove it for ordinary release/acquire

From: Andrea Parri
Date: Fri Aug 31 2018 - 14:29:06 EST


> > Yes, it's true that implementing locks with atomic_cmpxchg_acquire
> > should be correct on all existing architectures. And Paul has invited
> > a patch to modify the LKMM accordingly. If you feel that such a change
> > would be a useful enhancement to the LKMM's applicability, please write
> > it.
>
> Yes, please! That would be the "RmW" discussion which Andrea partially
> quoted earlier on, so getting that going independently from this patch
> sounds like a great idea to me.

That was indeed one of the proposal we discussed. As you recalled, that
proposal only covered RmWs load-acquire (and ordinary store-release); in
particular, I realized that comments such as:

"The atomic_cond_read_acquire() call above has provided the
necessary acquire semantics required for locking."

[from kernel/locking/qspinlock.c]

(for example) would still _not have "generic validity" _if we added the
above po-unlock-rf-lock-po term... (which, again, makes me somehow uncon-
fortable); Would to have _all_ the acquire be admissible for you?

Andrea


>
> Cheers,
>
> Will