Re: [PATCH v1 2/2] mm/memory: add anonymous mTHP folios to deferred split list
Barry Song <[email protected]> Tue, 4 Aug 2026 10:03:14 +0800
| Newsgroups | org.kvack.linux-mm |
|---|---|
| Message-ID | <CAGsJ_4z7bsDzMtO5PzaSHV4CBYBFS=wmmG3H8xfj-mdUo4VyxA@mail.gmail.com> |
On Tue, Aug 4, 2026 at 8:48=E2=80=AFAM Johannes Weiner <[email protected]>= wrote: > [...] > > > > #define LARGE_FOLIO_ZERO_SCAN_MIN_SIZE SZ_2M > > > > if (folio_size(folio) >=3D LARGE_FOLIO_ZERO_SCAN_MIN_SIZE) > > deferred_split_folio(folio, false); > > > > If, someday, people find that 1 MiB also helps, they can provide > > data to support it. > > I am very confused. Did you not see my proposal above? > > Why not this? Hi Johannes, For arm64, if the base page size is 64KB, a PMD would be 512MB, and PMD-1 would be 256MB. Usama mentioned 2MB, which is just order-5, not PMD-1 on arm64. BTW, I assume khugepaged_max_ptes_none is intended for collapse, not splitting. I am a bit concerned that reusing it for this purpose would be quite disruptive. So maybe just #define LARGE_FOLIO_ZERO_SCAN_MIN_SIZE SZ_2M if (folio_nr_pages(folio) < LARGE_FOLIO_ZERO_SCAN_MIN_SIZE) return; > > diff --git a/mm/huge_memory.c b/mm/huge_memory.c > index 2bccb0a53a0a..1670e9869bd3 100644 > --- a/mm/huge_memory.c > +++ b/mm/huge_memory.c > @@ -4364,6 +4364,9 @@ void deferred_split_folio(struct folio *folio, bool= partially_mapped) > if (!partially_mapped && !split_underused_thp) > return; > > + if (!partially_mapped && folio_nr_pages(folio) <=3D khugepaged_ma= x_ptes_none) > + return; > + > /* > * Exclude swapcache: originally to avoid a corrupt deferred spli= t > * queue. Nowadays that is fully prevented by __memcg1_swapout(); Thanks Barry