v4
2026-10-19
MGLRU回收跟踪点 · v4
重构vmscan跟踪头到mm/并移动scan_control,使MGLRU tracepoint直接读取generation/seq/memcg等字段并新增跟踪点。
原始补丁链接
子 Patch(9)
1/9
mm/memcontrol: drop unused vmscan tracepoint include
[mm/memcontrol: drop unused vmscan tracepoint include] From: Ridong Chen chenridong@xiaomi.com memcontrol.c includes <trace/events/vmscan.h> but does not use any of the tracepoints or macros it def
2/9
mm/vmscan: move vmscan tracepoints to a local header
将 vmscan tracepoint 头从 include/trace/events 移到 mm/trace_vmscan.h,并设置 TRACE_INCLUDE_PATH/编译包含路径,使 tracepoint 可引用 mm 内部 struct scan_control;仅重构,无功能变化。
3/9
mm/vmscan: move struct scan_control to a dedicated header
[mm/vmscan: move struct scan_control to a dedicated header] From: Ridong Chen chenridong@xiaomi.com The definition of struct scan_control has lived inline at the top of mm/vmscan.c. Move it out to
4/9
mm/vmscan: pass scan_control to the reclaim-begin tracepoints
[mm/vmscan: pass scan_control to the reclaim-begin tracepoints] From: Ridong Chen chenridong@xiaomi.com The reclaim-begin tracepoints describe the entry conditions of a reclaim invocation, which st
5/9
mm/vmscan: pass scan_control to the LRU isolate/shrink tracepoints
[mm/vmscan: pass scan_control to the LRU isolate/shrink tracepoints] From: Ridong Chen chenridong@xiaomi.com mm_vmscan_lru_isolate, mm_vmscan_lru_shrink_inactive and mm_vmscan_lru_shrink_active spe
6/9
mm/vmscan: pass scan_control to mm_vmscan_reclaim_pages
mm_vmscan_reclaim_pages tracepoint 改为接收 struct scan_control 并在 TP_fast_assign 读取 sc->nr_scanned,nr_reclaimed 仍单独传;tracefs 格式不变,但 raw_tp/BPF 的 TP_PROTO 变化需适配。
7/9
mm/vmscan: pass scan_control to mm_vmscan_balance_pgdat_end
mm_vmscan_balance_pgdat_end 改为接收 struct scan_control,在 TP_fast_assign 读取 sc->order/nr_reclaimed;highest_zoneidx 仍单独传,因结束时 sc.reclaim_idx 可能已变;tracefs 格式不变。
8/9
mm/mglru: add tracepoint for scan_folios()
MGLRU scan_folios() 原复用经典 trace_mm_vmscan_lru_isolate,缺少 memcg 和 generation 信息;新增 mm_mglru_scan_folios,记录 nr_sorted、node/memcg id、max_seq/tier/min_seq,并在 TP_fast_assign 中派生。
9/9
mm/mglru: add tracepoint for inc_max_seq()
为 MGLRU 老化路径 inc_max_seq() 增加 mm_mglru_inc_max_seq,在持有 lruvec 锁、max_seq 更新后记录 node/memcg、新 max_seq、anon/file min_seq 及各代页数;仅在 TP_fast_assign 采集,禁用时无开销。