Re: [RFC PATCH 1/8] mm: fix shmem swapout statistic

From: Baolin Wang
Date: Wed May 22 2024 - 03:54:46 EST




On 2024/5/22 15:16, Huang, Ying wrote:
Baolin Wang <baolin.wang@xxxxxxxxxxxxxxxxx> writes:

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);

Do we need to distinguish anonymous swapout and non-anonymous swapout?
IMHO, we don't. Just like we have done for small folio and THP.

Yes, old counters did not add 'anon_' prefix.

If so, how about fix this in another direction? That is, remove "ANON"
from mTHP swapout statistics?

This sounds good to me. And I will separate out an individual patch with your suggestion. Thanks.