Re: [PATCH] sched/numa: Add statistics of numa balance task migration and swap

From: K Prateek Nayak
Date: Wed Apr 02 2025 - 13:23:48 EST


On 4/2/2025 7:03 PM, Madadi Vineeth Reddy wrote:
Hi Chen Yu,

On 02/04/25 06:36, Chen Yu wrote:
On system with NUMA balancing enabled, it is found that tracking
the task activities due to NUMA balancing is helpful. NUMA balancing
has two mechanisms for task migration: one is to migrate the task to
an idle CPU in its preferred node, the other is to swap tasks on
different nodes if they are on each other's preferred node.

The kernel already has NUMA page migration statistics in
/sys/fs/cgroup/mytest/memory.stat and /proc/{PID}/sched.
but does not have statistics for task migration/swap.
Add the task migration and swap count accordingly.

The following two new fields:

numa_task_migrated
numa_task_swapped

will be displayed in both
/sys/fs/cgroup/{GROUP}/memory.stat and /proc/{PID}/sched

I applied this patch, but I still don't see the two new fields
in /proc/{PID}/sched.

Am I missing any additional steps?

You also need to enable schedstats:

echo 1 > /proc/sys/kernel/sched_schedstats

After that it should be visible:

$ cat /proc/4030/sched
sched-messaging (4030, #threads: 641)
-------------------------------------------------------------------
se.exec_start : 283818.948537

...

nr_forced_migrations : 0
numa_task_migrated : 0
numa_task_swapped : 0
nr_wakeups : 0

...

--
Thanks and Regards,
Prateek


Thanks,
Madadi Vineeth Reddy


Previous RFC version can be found here:
https://lore.kernel.org/lkml/1847c5ef828ad4835a35e3a54b88d2e13bce0eea.1740483690.git.yu.c.chen@xxxxxxxxx/

Signed-off-by: Chen Yu <yu.c.chen@xxxxxxxxx>
---
RFC->v1: Rename the nr_numa_task_migrated to
numa_task_migrated, and nr_numa_task_swapped
numa_task_swapped in /proc/{PID}/sched,
so both cgroup's memory.stat and task's
sched have the same field name.
---
include/linux/sched.h | 4 ++++
include/linux/vm_event_item.h | 2 ++
kernel/sched/core.c | 10 ++++++++--
kernel/sched/debug.c | 4 ++++
mm/memcontrol.c | 2 ++
mm/vmstat.c | 2 ++
6 files changed, 22 insertions(+), 2 deletions(-)