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

From: Kirill A. Shutemov
Date: Tue Mar 06 2018 - 09:58:16 EST


On Tue, Mar 06, 2018 at 02:56:08PM +0000, Dave Hansen wrote:
> On 03/06/2018 12:57 AM, Kirill A. Shutemov wrote:
> > 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.
>
> Doesn't it really mean "am I able to use the direct map to get this
> page's contents?"

Yes.

Any proposal for better helper name?

--
Kirill A. Shutemov