[PATCH 10/17] prmem: documentation

Andy Lutomirski luto at amacapital.net
Wed Oct 31 22:57:21 UTC 2018



> On Oct 31, 2018, at 2:00 PM, Peter Zijlstra <peterz at infradead.org> wrote:
> 
>> On Wed, Oct 31, 2018 at 01:36:48PM -0700, Andy Lutomirski wrote:
>> 
>>>> On Oct 31, 2018, at 3:02 AM, Peter Zijlstra <peterz at infradead.org> 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.

Sounds nuts. Doing a rare-write is many hundreds of cycles at best. Using that for a reference count sounds wacky.

Can we see a *real* use case before we over complicate the API?



More information about the Linux-security-module-archive mailing list