Hi, On Mon, 23 Feb 2026 09:15:44 -0800 Thomas Ballasi <[email protected]> wrote:
> The changes aims at adding additionnal tracepoints variables to help > debuggers attribute them to specific processes. > > The PID field uses in_task() to reliably detect when we're in process > context and can safely access current->pid. When not in process > context (such as in interrupt or in an asynchronous RCU context), the > field is set to -1 as a sentinel value. > > Signed-off-by: Thomas Ballasi <[email protected]> > --- > include/trace/events/vmscan.h | 34 +++++++++++++++++++++++++--------- > 1 file changed, 25 insertions(+), 9 deletions(-) > > diff --git a/include/trace/events/vmscan.h b/include/trace/events/vmscan.h > index 1212f6a7c223e..15b31281f0955 100644 > --- a/include/trace/events/vmscan.h > +++ b/include/trace/events/vmscan.h > @@ -122,18 +122,22 @@ > DECLARE_EVENT_CLASS(mm_vmscan_direct_reclaim_begin_template, > __field( unsigned long, gfp_flags ) > __field( u64, memcg_id ) > __field( int, order ) > + __field( int, pid ) > ), > > TP_fast_assign( > __entry->gfp_flags = (__force unsigned long)gfp_flags; > __entry->order = order; > + __entry->pid = current->pid; All entries saves current->pid in common_pid field. Can you use this common field? # cat events/vmscan/mm_vmscan_reclaim_pages/format name: mm_vmscan_reclaim_pages ID: 590 format: field:unsigned short common_type; offset:0; size:2; signed:0; field:unsigned char common_flags; offset:2; size:1; signed:0; field:unsigned char common_preempt_count; offset:3; size:1; signed:0; field:int common_pid; offset:4; size:4; signed:1; ## <------------here field:int nid; offset:8; size:4; signed:1; field:unsigned long nr_scanned; offset:16; size:8; signed:0; field:unsigned long nr_reclaimed; offset:24; size:8; signed:0; field:unsigned long nr_dirty; offset:32; size:8; signed:0; field:unsigned long nr_writeback; offset:40; size:8; signed:0; field:unsigned long nr_congested; offset:48; size:8; signed:0; field:unsigned long nr_immediate; offset:56; size:8; signed:0; field:unsigned int nr_activate0; offset:64; size:4; signed:0; field:unsigned int nr_activate1; offset:68; size:4; signed:0; field:unsigned long nr_ref_keep; offset:72; size:8; signed:0; field:unsigned long nr_unmap_fail; offset:80; size:8; signed:0; Thank you, -- Masami Hiramatsu (Google) <[email protected]>
