On Thu, Dec 5, 2024 at 4:54 PM Baolin Wang <baolin.wang@xxxxxxxxxxxxxxxxx> wrote: > > Commit 5d65c8d758f2 ("mm: count the number of anonymous THPs per size") adds > a new anonymous counter per THP size, however, when folio_mapping() is not NULL > during folio migration, it means this is not an anonymous folio, so remove the > redundant anonymous statistics in this case. why? Are you sure anon folios won't call __folio_migrate_mapping()? folio->mapping is PAGE_MAPPING_ANON for anon folios. static __always_inline bool folio_test_anon(const struct folio *folio) { return ((unsigned long)folio->mapping & PAGE_MAPPING_ANON) != 0; } > > Signed-off-by: Baolin Wang <baolin.wang@xxxxxxxxxxxxxxxxx> > --- > mm/migrate.c | 2 -- > 1 file changed, 2 deletions(-) > > diff --git a/mm/migrate.c b/mm/migrate.c > index e9e00d1d1d19..d7fdfdd23fd0 100644 > --- a/mm/migrate.c > +++ b/mm/migrate.c > @@ -523,8 +523,6 @@ static int __folio_migrate_mapping(struct address_space *mapping, > */ > newfolio->index = folio->index; > newfolio->mapping = folio->mapping; > - if (folio_test_anon(folio) && folio_test_large(folio)) > - mod_mthp_stat(folio_order(folio), MTHP_STAT_NR_ANON, 1); > folio_ref_add(newfolio, nr); /* add cache reference */ > if (folio_test_swapbacked(folio)) { > __folio_set_swapbacked(newfolio); > -- > 2.39.3 > Thanks Barry