On Thu, Sep 10, 2026 at 02:27:28PM +0800, Baolin Wang wrote:
> 
> 
> On 9/9/26 6:41 PM, Kiryl Shutsemau wrote:
> > On Wed, Sep 09, 2026 at 05:55:01PM +0800, Baolin Wang wrote:
> > > 
> > > 
> > > On 9/8/26 8:50 PM, Kiryl Shutsemau wrote:
> > > > From: "Kiryl Shutsemau (Meta)" <[email protected]>
> > > > 
> > > > __madvise_collapse() turns THP off before each MADV_COLLAPSE, both to 
> > > > keep
> > > > khugepaged out of the range and to prove MADV_COLLAPSE ignores the 
> > > > setting.
> > > > It clears the global controls only, which is no longer enough.  A 
> > > > per-order
> > > > control overrides them, and -s, which makes the cases fault in folios of
> > > > one order, leaves that order's control at "always".  khugepaged then
> > > > collapses the very range the case is working on, and the case fails on a
> > > > collapse that was interfered with rather than refused.
> > > 
> > > Right. So I think the correct fix tag is b7f16963efe7 ("mm/khugepaged: run
> > > khugepaged for all orders"), because before this commit, khugepaged would
> > > not try to collapse this range since it only checked whether the PMD order
> > > was suitable for collapse.
> > 
> > Agreed.  The series is in mm-new already; if a respin is needed I will use
> > that tag.
> > 
> > > > @@ -547,9 +547,16 @@ static void __madvise_collapse(const char *msg, 
> > > > char *p, int nr_hpages,
> > > >         /*
> > > >          * Prevent khugepaged interference and tests that MADV_COLLAPSE
> > > >          * ignores /sys/kernel/mm/transparent_hugepage/enabled
> > > > +        *
> > > > +        * "inherit" rather than "never" so that MADV_COLLAPSE on shmem 
> > > > still
> > > > +        * finds an order to build.
> > > >          */
> > > >         settings.thp_enabled = THP_NEVER;
> > > >         settings.shmem_enabled = SHMEM_NEVER;
> > > > +       for (i = 0; i < NR_ORDERS; i++) {
> > > > +               settings.hugepages[i].enabled = THP_INHERIT;
> > > > +               settings.shmem_hugepages[i].enabled = SHMEM_INHERIT;
> > > > +       }
> > > 
> > > This looks like a workaround to me. Shouldn't we fix this in shmem 
> > > instead?
> > 
> > Good point.
> > 
> > It can be a follow-up patch.  Do you want to make a proper shmem.c fix
> > and update the selftest along with it?
> 
> Either way works for me.

Please, do it as a standlone shmem fix, plus selftest update to reflect
the change.

-- 
  Kiryl Shutsemau / Kirill A. Shutemov

Reply via email to