On Tue, Feb 26, 2019 at 11:02:50AM -0800, Linus Torvalds wrote:
> On Tue, Feb 26, 2019 at 10:33 AM Peter Zijlstra <[email protected]> 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.

Reply via email to