On Mon, May 17, 2021 at 12:39:49PM -0700, Yang Shi wrote: > On Mon, May 17, 2021 at 8:09 AM Mel Gorman <mgorman@xxxxxxx> wrote: > > > > On Tue, Apr 13, 2021 at 02:24:10PM -0700, Yang Shi wrote: > > > Add orig_pmd to struct vm_fault so the "orig_pmd" parameter used by huge page > > > fault could be removed, just like its PTE counterpart does. > > > > > > Signed-off-by: Yang Shi <shy828301@xxxxxxxxx> > > > > > > <SNIP> > > > > > > diff --git a/include/linux/mm.h b/include/linux/mm.h > > > index 25b9041f9925..9c5856f8cc81 100644 > > > --- a/include/linux/mm.h > > > +++ b/include/linux/mm.h > > > @@ -547,6 +547,9 @@ struct vm_fault { > > > * the 'address' > > > */ > > > pte_t orig_pte; /* Value of PTE at the time of fault */ > > > + pmd_t orig_pmd; /* Value of PMD at the time of fault, > > > + * used by PMD fault only. > > > + */ > > > > > > struct page *cow_page; /* Page handler may use for COW fault */ > > > struct page *page; /* ->fault handlers should return a > > > > Could this be a union? > > Do you mean orig_pte and orig_pmd, or cow_page and page? orig_pte and orig_pmd given that one for PTE faults and one is for PMD faults and it's very unlikely they would both need to be considered during a single fault. -- Mel Gorman SUSE Labs