On Wed, Oct 31, 2018 at 01:36:48PM -0700, Andy Lutomirski wrote: > > > On Oct 31, 2018, at 3:02 AM, Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote: > > > >> On Tue, Oct 30, 2018 at 09:41:13PM -0700, Andy Lutomirski wrote: > >> To clarify some of this thread, I think that the fact that rare_write > >> uses an mm_struct and alias mappings under the hood should be > >> completely invisible to users of the API. No one should ever be > >> handed a writable pointer to rare_write memory (except perhaps during > >> bootup or when initializing a large complex data structure that will > >> be rare_write but isn't yet, e.g. the policy db). > > > > Being able to use pointers would make it far easier to do atomics and > > other things though. > > This stuff is called *rare* write for a reason. Do we really want to > allow atomics beyond just store-release? Taking a big lock and then > writing in the right order should cover everything, no? Ah, so no. That naming is very misleading. We modify page-tables a _lot_. The point is that only a few sanctioned sites are allowed writing to it, not everybody. I _think_ the use-case for atomics is updating the reference counts of objects that are in this write-rare domain. But I'm not entirely clear on that myself either. I just really want to avoid duplicating that stuff.