Re: [PATCH 10/17] prmem: documentation

From: Peter Zijlstra
Date: Wed Oct 31 2018 - 17:01:03 EST


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.