[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