On Thu, Dec 5, 2024 at 7:06 PM Baolin Wang <baolin.wang@xxxxxxxxxxxxxxxxx> wrote: > > > > On 2024/12/5 13:00, Barry Song wrote: > > 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; > > } > > Ah, sorry for noise. This just caught my eyes when reading the code, and > I did not think about it deeply before sending a quick patch. Thanks to > Barry and Ying for the reminder. No worries. I recall encountering a negative count during the development of the original patch and eventually realizing it was due to forgetting to increment the migrated anon folios. Your patch seems to reintroduce the bug I encountered back then :-) > > Andrew, please drop this quick patch. Sorry for the trouble. > Thanks Barry