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