Re: [PATCHv2 06/14] mm/page_alloc: Propagate encryption KeyID through page allocator

From: Kirill A. Shutemov
Date: Thu Mar 29 2018 - 08:39:11 EST


On Wed, Mar 28, 2018 at 10:15:02AM -0700, Dave Hansen wrote:
> On 03/28/2018 09:55 AM, Kirill A. Shutemov wrote:
> > @@ -51,7 +51,7 @@ static inline struct page *new_page_nodemask(struct page *page,
> > if (PageHighMem(page) || (zone_idx(page_zone(page)) == ZONE_MOVABLE))
> > gfp_mask |= __GFP_HIGHMEM;
> >
> > - new_page = __alloc_pages_nodemask(gfp_mask, order,
> > + new_page = __alloc_pages_nodemask(gfp_mask, order, page_keyid(page),
> > preferred_nid, nodemask);
>
> You're not going to like this suggestion.
>
> Am I looking at this too superficially, or does every single site into
> which you pass keyid also take a node and gfpmask and often an order? I
> think you need to run this by the keepers of page_alloc.c and see if
> they'd rather do something more drastic.

Are you talking about having some kind of struct that would indicalte page
allocation context -- gfp_mask + order + node + keyid?

--
Kirill A. Shutemov