On Fri, Mar 24, 2017 at 12:20 PM, Linus Torvalds <[email protected]> wrote: > On Fri, Mar 24, 2017 at 12:16 PM, Andy Lutomirski <[email protected]> wrote: >>> >>> Not to mention we cannot use the C11 atomics in kernel because we want >>> to be able to runtime patch LOCK prefixes when only 1 CPU is available. >> >> Is this really a show-stopper? I bet that objtool could be persuaded >> to emit a list of the locations of all those LOCK prefixes. > > I doubt it's a show-stopper, if only because nobody cares about UP any > more. Not even the embedded world does. > > That said, I'm not convinced that there will ever really be a reason > for the kernel to use the C11 atomics. They just aren't any better > than what we can do ourselves. > > The reason for C11 atomics is "portably good atomics". We use > "architecture-specific good atomics" instead, and are willing to > maintain that. We will *have* to maintain that in the forseeable > future anyway, for legacy compiler issues.
In theory, though, the compiler could optimize based on its knowledge of what the C11 atomics do. ISTR reading about a few optimizations that were already starting to be developed. Using asm goto seems okay, too, but it's a lot more tedious is less friendly to the optimizers. --Andy

