Re: [v2 PATCH 1/7] mm: memory: add orig_pmd to struct vm_fault

From: Mel Gorman
Date: Tue May 18 2021 - 03:36:26 EST


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