From: Ridong Chen <[email protected]> balance_pgdat() passes sc.order and sc.nr_reclaimed to mm_vmscan_balance_pgdat_end as bare arguments. Pass the enclosing struct scan_control instead and read the fields out in TP_fast_assign, mirroring mm_vmscan_balance_pgdat_begin. highest_zoneidx stays a separate argument as it is a local of balance_pgdat() rather than a scan_control field.
The exported event format is unchanged. No functional change. Assisted-by: Claude:claude-opus-4-8 Signed-off-by: Ridong Chen <[email protected]> --- mm/trace_vmscan.h | 9 ++++----- mm/vmscan.c | 3 +-- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/mm/trace_vmscan.h b/mm/trace_vmscan.h index 04f285e77659..c27bc7cc6063 100644 --- a/mm/trace_vmscan.h +++ b/mm/trace_vmscan.h @@ -124,10 +124,9 @@ TRACE_EVENT(mm_vmscan_balance_pgdat_begin, TRACE_EVENT(mm_vmscan_balance_pgdat_end, - TP_PROTO(int nid, int order, int highest_zoneidx, - unsigned long nr_reclaimed), + TP_PROTO(int nid, struct scan_control *sc, int highest_zoneidx), - TP_ARGS(nid, order, highest_zoneidx, nr_reclaimed), + TP_ARGS(nid, sc, highest_zoneidx), TP_STRUCT__entry( __field(int, nid) @@ -138,9 +137,9 @@ TRACE_EVENT(mm_vmscan_balance_pgdat_end, TP_fast_assign( __entry->nid = nid; - __entry->order = order; + __entry->order = sc->order; __entry->highest_zoneidx = highest_zoneidx; - __entry->nr_reclaimed = nr_reclaimed; + __entry->nr_reclaimed = sc->nr_reclaimed; ), TP_printk("nid=%d order=%d highest_zoneidx=%-8s nr_reclaimed=%lu", diff --git a/mm/vmscan.c b/mm/vmscan.c index 6ec84390ee2a..52d90a32091e 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -7403,8 +7403,7 @@ static int balance_pgdat(pg_data_t *pgdat, int order, int highest_zoneidx) psi_memstall_leave(&pflags); set_task_reclaim_state(current, NULL); - trace_mm_vmscan_balance_pgdat_end(pgdat->node_id, sc.order, - highest_zoneidx, sc.nr_reclaimed); + trace_mm_vmscan_balance_pgdat_end(pgdat->node_id, &sc, highest_zoneidx); /* * Return the order kswapd stopped reclaiming at as -- 2.34.1
