]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
mm: vmscan: add PIDs to vmscan tracepoints
authorThomas Ballasi <tballasi@linux.microsoft.com>
Mon, 16 Mar 2026 16:09:08 +0000 (09:09 -0700)
committerAndrew Morton <akpm@linux-foundation.org>
Sun, 5 Apr 2026 20:53:04 +0000 (13:53 -0700)
The changes aims at adding additionnal tracepoints variables to help
debuggers attribute them to specific processes.

Link: https://lkml.kernel.org/r/20260316160908.42727-4-tballasi@linux.microsoft.com
Signed-off-by: Thomas Ballasi <tballasi@linux.microsoft.com>
Cc: Axel Rasmussen <axelrasmussen@google.com>
Cc: David Hildenbrand <david@kernel.org>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Cc: Michal Hocko <mhocko@kernel.org>
Cc: Qi Zheng <zhengqi.arch@bytedance.com>
Cc: Shakeel Butt <shakeel.butt@linux.dev>
Cc: Steven Rostedt (Google) <rostedt@goodmis.org>
Cc: Wei Xu <weixugc@google.com>
Cc: Yuanchu Xie <yuanchu@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
include/trace/events/vmscan.h

index c9e637c10f96115875b3ff0329f93c03e7a57af4..4445a8d9218de460fd56fd5e2c6c68daa6b0967e 100644 (file)
@@ -140,10 +140,12 @@ DECLARE_EVENT_CLASS(mm_vmscan_direct_reclaim_begin_template,
                __entry->memcg_id       = mem_cgroup_id(memcg);
        ),
 
-       TP_printk("order=%d gfp_flags=%s memcg_id=%llu",
+       TP_printk("order=%d gfp_flags=%s pid=%d memcg_id=%llu %s",
                __entry->order,
                show_gfp_flags(__entry->gfp_flags),
-               __entry->memcg_id)
+               __entry->ent.pid,
+               __entry->memcg_id,
+               __event_in_irq() ? "(in-irq)" : "")
 );
 
 DEFINE_EVENT(mm_vmscan_direct_reclaim_begin_template, mm_vmscan_direct_reclaim_begin,
@@ -185,9 +187,11 @@ DECLARE_EVENT_CLASS(mm_vmscan_direct_reclaim_end_template,
                __entry->memcg_id       = mem_cgroup_id(memcg);
        ),
 
-       TP_printk("nr_reclaimed=%lu memcg_id=%llu",
+       TP_printk("nr_reclaimed=%lu pid=%d memcg_id=%llu %s",
                __entry->nr_reclaimed,
-               __entry->memcg_id)
+               __entry->ent.pid,
+               __entry->memcg_id,
+               __event_in_irq() ? "(in-irq)" : "")
 );
 
 DEFINE_EVENT(mm_vmscan_direct_reclaim_end_template, mm_vmscan_direct_reclaim_end,
@@ -248,17 +252,19 @@ TRACE_EVENT(mm_shrink_slab_start,
                __entry->memcg_id = mem_cgroup_id(memcg);
        ),
 
-       TP_printk("%pS %p: nid: %d memcg_id: %llu objects to shrink %ld gfp_flags %s cache items %ld delta %lld total_scan %ld priority %d",
+       TP_printk("%pS %p: nid: %d pid: %d memcg_id: %llu objects to shrink %ld gfp_flags %s cache items %ld delta %lld total_scan %ld priority %d %s",
                __entry->shrink,
                __entry->shr,
                __entry->nid,
+               __entry->ent.pid,
                __entry->memcg_id,
                __entry->nr_objects_to_shrink,
                show_gfp_flags(__entry->gfp_flags),
                __entry->cache_items,
                __entry->delta,
                __entry->total_scan,
-               __entry->priority)
+               __entry->priority,
+               __event_in_irq() ? "(in-irq)" : "")
 );
 
 TRACE_EVENT(mm_shrink_slab_end,
@@ -290,15 +296,17 @@ TRACE_EVENT(mm_shrink_slab_end,
                __entry->memcg_id = mem_cgroup_id(memcg);
        ),
 
-       TP_printk("%pS %p: nid: %d memcg_id: %llu unused scan count %ld new scan count %ld total_scan %ld last shrinker return val %d",
+       TP_printk("%pS %p: nid: %d pid: %d memcg_id: %llu unused scan count %ld new scan count %ld total_scan %ld last shrinker return val %d %s",
                __entry->shrink,
                __entry->shr,
                __entry->nid,
+               __entry->ent.pid,
                __entry->memcg_id,
                __entry->unused_scan,
                __entry->new_scan,
                __entry->total_scan,
-               __entry->retval)
+               __entry->retval,
+               __event_in_irq() ? "(in-irq)" : "")
 );
 
 TRACE_EVENT(mm_vmscan_lru_isolate,