v3
2026-11-13
MGLRU aging用PUD级Bloom过滤器 · v3
为 MGLRU 增加 PUD 级 Bloom 过滤器状态与空遍历统计,老化时跳过冷 PUD 子树并计数。
原始补丁链接
子 Patch(4)
1/4
mm/mglru: add MM_WALK_EMPTY stats and tracepoint
MGLRU aging walk 新增 MM_WALK_EMPTY 等 mm_state 计数和 mm_vmscan_lru_gen_walk tracepoint,量化 lru_gen_use_mm() 跨 NUMA 标记后遍历页表却无本 lruvec folio 的空扫描。
2/4
mm/mglru: add PUD-level Bloom filter state and generic helpers
把 Bloom filter 改为按 level 索引的二维 filters,新增 BLOOM_FILTER_PUD/PMD 与通用 test/update/reset_bloom_filter,为 PUD 粒度抑制空 PMD 遍历做准备,本 patch 无行为变化。
3/4
mm/mglru: skip cold PUD subtrees during aging
walk_pmd_range() 返回子树是否有本 lruvec 的 young 页,walk_pud_range() 据此更新以 (mm, PUD 对齐地址) 为键的 Bloom filter;后续代跳过上代无 young 的整个 PUD,force_scan 绕过。
4/4
mm/mglru: count PUD subtrees skipped by the PUD-level filter
walk_pud_range() 因 PUD filter 跳过子树时累加 MM_PUD_EMPTY_SKIPPED,并接入 debugfs TYFALWEES 的 S 列和 mm_vmscan_lru_gen_walk tracepoint,直接量化过滤省下的遍历成本。