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

From: Kirill A. Shutemov
Date: Fri Jun 14 2019 - 18:48:00 EST


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.

--
Kirill A. Shutemov