Re: [RFC, PATCH 21/22] x86/mm: Introduce page_keyid() and page_encrypted()

From: Kirill A. Shutemov
Date: Tue Mar 06 2018 - 03:58:12 EST


On Mon, Mar 05, 2018 at 09:08:53AM -0800, Dave Hansen wrote:
> On 03/05/2018 08:26 AM, Kirill A. Shutemov wrote:
> > +static inline bool page_encrypted(struct page *page)
> > +{
> > + /* All pages with non-zero KeyID are encrypted */
> > + return page_keyid(page) != 0;
> > +}
>
> Is this true? I thought there was a KEYID_NO_ENCRYPT "Do not encrypt
> memory when this KeyID is in use." Is that really only limited to key 0.

Well, it depends on what we mean by "encrypted". For memory management
pruposes we care if the page is encrypted with KeyID different from
default one. All pages with non-default KeyID threated the same by memory
management.

So far we don't have users for the interface. We may reconsider
the meaning once we get users.

--
Kirill A. Shutemov