Messages in this thread | | | Date | Fri, 3 Mar 2017 15:49:38 +0100 | From | Peter Zijlstra <> | Subject | Re: [PATCH 02/26] rewrite READ_ONCE/WRITE_ONCE |
| |
On Fri, Mar 03, 2017 at 09:26:50AM +0100, Christian Borntraeger wrote: > Right. The main purpose is to read/write _ONCE_. You can assume a somewhat > atomic access for sizes <= word size. And there are certainly places that > rely on that. But the *ONCE thing is mostly used for things where we used > barrier() 10 years ago.
A lot of code relies on READ/WRITE_ONCE() to generate single instructions for naturally aligned machined word sized loads/stores (something GCC used to guarantee, but does no longer IIRC).
So much so that I would say its a bug if READ/WRITE_ONCE() doesn't generate a single instruction under those conditions.
However, every time I've tried to introduce stricter semantics/primitives to verify things Linus hated it.
| |