Re: [PATCH v7 05/11] mm: split a folio in minimum folio order chunks

From: Matthew Wilcox
Date: Fri Jun 07 2024 - 13:02:24 EST


On Fri, Jun 07, 2024 at 12:58:33PM -0400, Zi Yan wrote:
> > +int split_folio_to_list(struct folio *folio, struct list_head *list)
> > +{
> > + unsigned int min_order = 0;
> > +
> > + if (!folio_test_anon(folio)) {
> > + if (!folio->mapping) {
> > + count_vm_event(THP_SPLIT_PAGE_FAILED);
>
> You should only increase this counter when the input folio is a THP, namely
> folio_test_pmd_mappable(folio) is true. For other large folios, we will
> need a separate counter. Something like MTHP_STAT_FILE_SPLIT_FAILED.
> See enum mthp_stat_item in include/linux/huge_mm.h.

Also, why should this count as a split failure? If we see a NULL
mapping, the folio has been truncated and so no longer needs to be
split. I understand we currently count it as a failure, but I
don't think we should.