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 ;-)