On 8/15/25 16:57, Pavel Tikhomirov wrote:
We count PSWPIN/OUT events via this code path:
+-> count_memcg_page_event(folio, PSWPIN)
+-> count_memcg_events(PSWPIN)
+-> __count_memcg_events(PSWPIN)
+-> index = memcg_events_index(idx=PSWPIN)
+-> return mem_cgroup_events_index[idx] - 1
+-> if (index >= 0)
+-> __this_cpu_add(memcg->vmstats_percpu->events[i], count)
And before that patch mem_cgroup_events_index[PSWPIN/OUT] was 0, which
is "BAD" and leads to doing nothing.
Fix that by adding PSWPIN/OUT to memcg_vm_event_stat.
One more benefit from this change is that those stats are now also
available in cgroup-v2 memory.stat file. Note though, that cgroup-v2
event stats are printed via memcg_events and cgroup-v1 event stats are
printed via memcg_events_local, so in v2 we have total sum of stats in
all cgroup subdirectories, not just one cgroup.
Fixes: 143b574870cec ("mm: memcontrol: add swapin/out stats")
On vz9 the Fixes hash is different:
Fixes: f8900420d42d5 ("mm: memcontrol: add swapin/out stats")
Signed-off-by: Pavel Tikhomirov <ptikhomi...@virtuozzo.com>
---
mm/memcontrol.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/mm/memcontrol.c b/mm/memcontrol.c
index bf873cf7b1e28..cd3f0ccdacb7b 100644
--- a/mm/memcontrol.c
+++ b/mm/memcontrol.c
@@ -736,6 +736,8 @@ static const unsigned int memcg_vm_event_stat[] = {
THP_FAULT_ALLOC,
THP_COLLAPSE_ALLOC,
#endif
+ PSWPIN,
+ PSWPOUT,
};
#define NR_MEMCG_EVENTS ARRAY_SIZE(memcg_vm_event_stat)
--
Best regards, Pavel Tikhomirov
Senior Software Developer, Virtuozzo.
_______________________________________________
Devel mailing list
Devel@openvz.org
https://lists.openvz.org/mailman/listinfo/devel