[Devel] [PATCH VZ9] mm/memcontrol: fix non functioning swapin/out stats
Pavel Tikhomirov
ptikhomirov at virtuozzo.com
Fri Aug 15 12:00:23 MSK 2025
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 <ptikhomirov at 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.
More information about the Devel
mailing list