Re: [RFC PATCH 01/20] asm-generic/mmiowb: Add generic implementation of mmiowb() tracking
From: Peter Zijlstra
Date: Wed Feb 27 2019 - 05:20:06 EST
On Tue, Feb 26, 2019 at 11:02:50AM -0800, Linus Torvalds wrote:
> On Tue, Feb 26, 2019 at 10:33 AM Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote:
> >
> > Arguably we could fix that for __this_cpu_xchg(), which isn't IRQ-safe.
>
> Yeah, I guess x86 _should_ really do __this_cpu_xchg() as just a
> read-write pair.
See the patches I just send.
> In general, a read-write pair is probably always the right thing to
> do, and the only reason we can't just do it in an
> architecture-independent way is that we'd want to avoid doing the
> address generation twice (for architectures where that is an issue).
The generic code has this right, see
include/asm-generic/percpu.h:raw_cpu_generic_xchg().
That is used in the majority of the architectures. With the patch I just
send, x86 will use two gs prefixed movs.