Introducing the task migration and swap statistics in the following places:
/sys/fs/cgroup/{GROUP}/memory.stat
/proc/{PID}/sched
/proc/vmstat
These statistics facilitate a rapid evaluation of the performance and resource
utilization of the target workload.
Patch 1 is a fix from Libo to avoid task swapping for kernel threads,
because Numa balance only cares about the user pages via VMA.
Patch 2 is the major change to expose the statistics of task migration and
swapping in corresponding files.
The reason to fold patch 1 and patch 2 into 1 patch set is that patch 1 is
necessary for patch 2 to avoid accessing a NULL mm_struct from a kernel
thread, which causes NULL pointer exception.
The Tested-by and Acked-by tags are preserved, because these tags are provided
in version 1 which has the p->mm check.
Previous version:
v3:
https://lore.kernel.org/lkml/20250430103623.3349842-1-yu.c.chen@xxxxxxxxx/
v2:
https://lore.kernel.org/lkml/20250408101444.192519-1-yu.c.chen@xxxxxxxxx/
v1:
https://lore.kernel.org/lkml/20250402010611.3204674-1-yu.c.chen@xxxxxxxxx/
Chen Yu (1):
sched/numa: add statistics of numa balance task migration
Libo Chen (1):
sched/numa: fix task swap by skipping kernel threads
Documentation/admin-guide/cgroup-v2.rst | 6 ++++++
include/linux/sched.h | 4 ++++
include/linux/vm_event_item.h | 2 ++
kernel/sched/core.c | 9 +++++++--
kernel/sched/debug.c | 4 ++++
kernel/sched/fair.c | 3 ++-
mm/memcontrol.c | 2 ++
mm/vmstat.c | 2 ++
8 files changed, 29 insertions(+), 3 deletions(-)