On Thu, Jan 22, 2026 at 10:25:09AM -0800, Thomas Ballasi wrote:
> Memory reclaim events are currently difficult to attribute to
> specific cgroups, making debugging memory pressure issues
> challenging.  This patch adds memory cgroup ID (memcg_id) to key
> vmscan tracepoints to enable better correlation and analysis.
> 
> For operations not associated with a specific cgroup, the field
> is defaulted to 0.
> 
> Signed-off-by: Thomas Ballasi <[email protected]>
> ---
>  include/trace/events/vmscan.h | 83 ++++++++++++++++++++---------------
>  mm/shrinker.c                 |  6 ++-
>  mm/vmscan.c                   | 17 +++----
>  3 files changed, 61 insertions(+), 45 deletions(-)
> 
> diff --git a/include/trace/events/vmscan.h b/include/trace/events/vmscan.h
> index 490958fa10dee..20160e79eb0d7 100644
> --- a/include/trace/events/vmscan.h
> +++ b/include/trace/events/vmscan.h
> @@ -114,85 +114,92 @@ TRACE_EVENT(mm_vmscan_wakeup_kswapd,
>  
>  DECLARE_EVENT_CLASS(mm_vmscan_direct_reclaim_begin_template,
>  
> -     TP_PROTO(int order, gfp_t gfp_flags),
> +     TP_PROTO(gfp_t gfp_flags, int order, u64 memcg_id),
>  
> -     TP_ARGS(order, gfp_flags),
> +     TP_ARGS(gfp_flags, order, memcg_id),
>  
>       TP_STRUCT__entry(
> -             __field(        int,    order           )
>               __field(        unsigned long,  gfp_flags       )
> +             __field(        u64,    memcg_id        )
> +             __field(        int,    order           )
>       ),
>  
>       TP_fast_assign(
> -             __entry->order          = order;
>               __entry->gfp_flags      = (__force unsigned long)gfp_flags;
> +             __entry->order          = order;
> +             __entry->memcg_id       = memcg_id;

Please pass memcg pointer to tracepoints and call mem_cgroup_id(memcg)
here.


Reply via email to