Re: [PATCH v8 1/8] mm/memfd: Introduce userspace inaccessible memfd
From: Sean Christopherson
Date: Thu Sep 22 2022 - 15:49:28 EST
On Thu, Sep 22, 2022, Wang, Wei W wrote:
> On Thursday, September 15, 2022 10:29 PM, Chao Peng wrote:
> > +int inaccessible_get_pfn(struct file *file, pgoff_t offset, pfn_t *pfn,
> > + int *order)
>
> Better to remove "order" from this interface?
Hard 'no'.
> Some callers only need to get pfn, and no need to bother with
> defining and inputting something unused. For callers who need the "order",
> can easily get it via thp_order(pfn_to_page(pfn)) on their own.
That requires (a) assuming the pfn is backed by struct page, and (b) assuming the
struct page is a transparent huge page. That might be true for the current
implementation, but it most certainly will not always be true.
KVM originally did things like this, where there was dedicated code for THP vs.
HugeTLB, and it was a mess. The goal here is very much to avoid repeating those
mistakes. Have the backing store _tell_ KVM how big the mapping is, don't force
KVM to rediscover the info on its own.