As we know, shmem not only supports the sharing of anonymous pages, but also the RAM-based temporary filesystem. Therefore, shmem swapouts should not be marked as anonymous swapout statistics. Fix it by adding folio_test_anon(). Fixes: d0f048ac39f6 ("mm: add per-order mTHP anon_swpout and anon_swpout_fallback counters") Signed-off-by: Baolin Wang <baolin.wang@xxxxxxxxxxxxxxxxx> --- mm/page_io.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mm/page_io.c b/mm/page_io.c index 46c603dddf04..b181b81f39e3 100644 --- a/mm/page_io.c +++ b/mm/page_io.c @@ -217,7 +217,9 @@ static inline void count_swpout_vm_event(struct folio *folio) count_memcg_folio_events(folio, THP_SWPOUT, 1); count_vm_event(THP_SWPOUT); } - count_mthp_stat(folio_order(folio), MTHP_STAT_ANON_SWPOUT); + + if (folio_test_anon(folio)) + count_mthp_stat(folio_order(folio), MTHP_STAT_ANON_SWPOUT); #endif count_vm_events(PSWPOUT, folio_nr_pages(folio)); } -- 2.39.3