On Tue, 16 Dec 2025 06:02:51 -0800
Thomas Ballasi <[email protected]> wrote:

> ---
>  include/trace/events/vmscan.h | 65 +++++++++++++++++++++--------------
>  mm/vmscan.c                   | 17 ++++-----
>  2 files changed, 48 insertions(+), 34 deletions(-)
> 
> diff --git a/include/trace/events/vmscan.h b/include/trace/events/vmscan.h
> index d2123dd960d59..afc9f80d03f34 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(int order, gfp_t gfp_flags, unsigned short memcg_id),
>  
> -     TP_ARGS(order, gfp_flags),
> +     TP_ARGS(order, gfp_flags, memcg_id),
>  
>       TP_STRUCT__entry(
>               __field(        int,    order           )
>               __field(        unsigned long,  gfp_flags       )
> +             __field(        unsigned short, memcg_id        )
>       ),

Hmm, the above adds some holes. Note, events are at a minimum, 4 bytes
aligend. On 64bit, they can be 8 byte aligned. Still, above is the same as:

        struct {
                int             order;
                unsigned long   gfp_flags;
                unsigned short  memcg_id;
        };

See the issue? Perhaps it may be better to add the memcg_id in between the
order and gfp_flags?

-- Steve

Reply via email to