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


Reply via email to