From: Ridong Chen <[email protected]>

The reclaim-begin tracepoints describe the entry conditions of a reclaim
invocation, which struct scan_control already carries. Now that the struct
is visible from the trace header, pass sc directly and pick the fields out
in TP_fast_assign instead of spelling out gfp_mask and order at every
callsite. 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 | 24 ++++++++++++------------
 mm/vmscan.c       |  7 +++----
 2 files changed, 15 insertions(+), 16 deletions(-)

diff --git a/mm/trace_vmscan.h b/mm/trace_vmscan.h
index c8ac5d4e4043..c9f16267c0a2 100644
--- a/mm/trace_vmscan.h
+++ b/mm/trace_vmscan.h
@@ -291,9 +291,9 @@ TRACE_EVENT(mm_vmscan_wakeup_kswapd,
 
 DECLARE_EVENT_CLASS(mm_vmscan_direct_reclaim_begin_template,
 
-       TP_PROTO(gfp_t gfp_flags, int order, struct mem_cgroup *memcg),
+       TP_PROTO(struct scan_control *sc, struct mem_cgroup *memcg),
 
-       TP_ARGS(gfp_flags, order, memcg),
+       TP_ARGS(sc, memcg),
 
        TP_STRUCT__entry(
                __field(        unsigned long,  gfp_flags       )
@@ -302,8 +302,8 @@ DECLARE_EVENT_CLASS(mm_vmscan_direct_reclaim_begin_template,
        ),
 
        TP_fast_assign(
-               __entry->gfp_flags      = (__force unsigned long)gfp_flags;
-               __entry->order          = order;
+               __entry->gfp_flags      = (__force unsigned long)sc->gfp_mask;
+               __entry->order          = sc->order;
                __entry->memcg_id       = mem_cgroup_id(memcg);
        ),
 
@@ -317,17 +317,17 @@ 
DECLARE_EVENT_CLASS(mm_vmscan_direct_reclaim_begin_template,
 
 DEFINE_EVENT(mm_vmscan_direct_reclaim_begin_template, 
mm_vmscan_direct_reclaim_begin,
 
-       TP_PROTO(gfp_t gfp_flags, int order, struct mem_cgroup *memcg),
+       TP_PROTO(struct scan_control *sc, struct mem_cgroup *memcg),
 
-       TP_ARGS(gfp_flags, order, memcg)
+       TP_ARGS(sc, memcg)
 );
 
 #ifdef CONFIG_MEMCG
 DEFINE_EVENT(mm_vmscan_direct_reclaim_begin_template, 
mm_vmscan_memcg_reclaim_begin,
 
-       TP_PROTO(gfp_t gfp_flags, int order, struct mem_cgroup *memcg),
+       TP_PROTO(struct scan_control *sc, struct mem_cgroup *memcg),
 
-       TP_ARGS(gfp_flags, order, memcg)
+       TP_ARGS(sc, memcg)
 );
 #endif /* CONFIG_MEMCG */
 
@@ -664,9 +664,9 @@ TRACE_EVENT(mm_vmscan_lru_shrink_active,
 
 TRACE_EVENT(mm_vmscan_node_reclaim_begin,
 
-       TP_PROTO(int nid, int order, gfp_t gfp_flags),
+       TP_PROTO(int nid, struct scan_control *sc),
 
-       TP_ARGS(nid, order, gfp_flags),
+       TP_ARGS(nid, sc),
 
        TP_STRUCT__entry(
                __field(int, nid)
@@ -676,8 +676,8 @@ TRACE_EVENT(mm_vmscan_node_reclaim_begin,
 
        TP_fast_assign(
                __entry->nid = nid;
-               __entry->order = order;
-               __entry->gfp_flags = (__force unsigned long)gfp_flags;
+               __entry->order = sc->order;
+               __entry->gfp_flags = (__force unsigned long)sc->gfp_mask;
        ),
 
        TP_printk("nid=%d order=%d gfp_flags=%s",
diff --git a/mm/vmscan.c b/mm/vmscan.c
index 2fd9b42f89d8..2fed83738b4b 100644
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
@@ -6885,7 +6885,7 @@ unsigned long try_to_free_pages(struct zonelist 
*zonelist, int order,
                return 1;
 
        set_task_reclaim_state(current, &sc.reclaim_state);
-       trace_mm_vmscan_direct_reclaim_begin(sc.gfp_mask, order, NULL);
+       trace_mm_vmscan_direct_reclaim_begin(&sc, NULL);
 
        nr_reclaimed = do_try_to_free_pages(zonelist, &sc);
 
@@ -6926,7 +6926,7 @@ unsigned long try_to_free_mem_cgroup_pages(struct 
mem_cgroup *memcg,
        struct zonelist *zonelist = node_zonelist(numa_node_id(), sc.gfp_mask);
 
        set_task_reclaim_state(current, &sc.reclaim_state);
-       trace_mm_vmscan_memcg_reclaim_begin(sc.gfp_mask, 0, memcg);
+       trace_mm_vmscan_memcg_reclaim_begin(&sc, memcg);
        noreclaim_flag = memalloc_noreclaim_save();
 
        nr_reclaimed = do_try_to_free_pages(zonelist, &sc);
@@ -7882,8 +7882,7 @@ static unsigned long __node_reclaim(struct pglist_data 
*pgdat,
        unsigned int noreclaim_flag;
        unsigned long pflags;
 
-       trace_mm_vmscan_node_reclaim_begin(pgdat->node_id, sc->order,
-                                          sc->gfp_mask);
+       trace_mm_vmscan_node_reclaim_begin(pgdat->node_id, sc);
 
        cond_resched();
        psi_memstall_enter(&pflags);
-- 
2.34.1


Reply via email to