Re: [PATCH 1/3 fix] mm,thp,rmap: subpages_mapcount of PTE-mapped subpages: fix

From: Hugh Dickins
Date: Tue Nov 22 2022 - 04:13:54 EST


On Mon, 21 Nov 2022, Kirill A. Shutemov wrote:
> On Fri, Nov 18, 2022 at 05:35:05PM -0800, Hugh Dickins wrote:
...
> > --- a/mm/rmap.c
> > +++ b/mm/rmap.c
> > @@ -1281,7 +1281,7 @@ void page_add_anon_rmap(struct page *page,
> > struct compound_mapcounts mapcounts;
> > int nr = 0, nr_pmdmapped = 0;
> > bool compound = flags & RMAP_COMPOUND;
> > - bool first;
> > + bool first = true;
> >
> > if (unlikely(PageKsm(page)))
> > lock_page_memcg(page);
>
> Other option is to drop PageTransHuge() check that you already claim to be
> redundant.
>
> Or have else BUG() to catch cases where the helper called with
> compound=true on non-THP page.

I'm sticking with the "first = true". I did receive a report of bloating
some tiny config a little, on the very first series, so I've been on guard
since then about adding THP code where the optimizer cannot see to remove
it: so do want to keep the PageTransHuge check in there. Could be done
in other ways, yes, but I'd ended up feeling this was the best compromise.

Hugh