Re: Memory barrier needed with wake_up_process()?

From: Peter Zijlstra
Date: Fri Sep 02 2016 - 18:14:24 EST


On Fri, Sep 02, 2016 at 04:16:54PM -0400, Alan Stern wrote:
>
> Actually, that's not entirely true (although presumably it works okay
> for most architectures).

Yeah, all load-store archs (with exception of PowerPC and ARM64 and
possibly MIPS) implement ACQUIRE with a general fence (after the ll/sc).

( and MIPS doesn't use their fancy barriers in Linux )

PowerPC does the full fence for smp_mb__before_spinlock, which leaves
ARM64, I'm not sure its correct, but I'm way too tired to think about
that now.

The TSO archs imply full barriers with all atomic RmW ops and are
therefore also good.