Re: [PATCH, RFC 18/62] x86/mm: Implement syncing per-KeyID direct mappings

From: Peter Zijlstra
Date: Mon Jun 17 2019 - 05:32:58 EST


On Sat, Jun 15, 2019 at 01:43:09AM +0300, Kirill A. Shutemov wrote:
> On Fri, Jun 14, 2019 at 11:51:32AM +0200, Peter Zijlstra wrote:
> > On Wed, May 08, 2019 at 05:43:38PM +0300, Kirill A. Shutemov wrote:
> > > For MKTME we use per-KeyID direct mappings. This allows kernel to have
> > > access to encrypted memory.
> > >
> > > sync_direct_mapping() sync per-KeyID direct mappings with a canonical
> > > one -- KeyID-0.
> > >
> > > The function tracks changes in the canonical mapping:
> > > - creating or removing chunks of the translation tree;
> > > - changes in mapping flags (i.e. protection bits);
> > > - splitting huge page mapping into a page table;
> > > - replacing page table with a huge page mapping;
> > >
> > > The function need to be called on every change to the direct mapping:
> > > hotplug, hotremove, changes in permissions bits, etc.
> >
> > And yet I don't see anything in pageattr.c.
>
> You're right. I've hooked up the sync in the wrong place.
> >
> > Also, this seems like an expensive scheme; if you know where the changes
> > where, a more fine-grained update would be faster.
>
> Do we have any hot enough pageattr users that makes it crucial?
>
> I'll look into this anyway.

The graphics people would be the most agressive users of this I'd think.
They're the ones that yelled when I broke it last ;-)