On Fri, Dec 06, 2019 at 10:27:20AM +0100, Maxime Villard wrote: > With 'worker_ci', there is an actual safety issue, because the compiler could > split the accesses and the hardware may not use atomics by default like x86. > This could cause random page faults; so it needs to be strictly atomic.
No I don't accept that. The ability to load and store a native word sized int (and in more recent years a pointer) with a single instruction is a fundamental assumption that every operating system written in C rests upon. If the compiler splits one of those acceses, then you are either using some other data type, or have a broken compiler on your hands. If the compiler is broken it's the compiler you should be looking at, not the program it compiled. It's as simple as that. https://www.gnu.org/software/libc/manual/html_node/Atomic-Types.html Andrew