v1
2026-08-31
DAMON 支持 hugetlb 访问监控 · v1
让DAMON支持hugetlb:rmap mkold/young遍历hugetlb folio并通知secondary MMU,新增含hugetlb的folio获取。
原始补丁链接
子 Patch(6)
1/6
mm/damon: move damon_hugetlb_mkold() from vaddr to ops-common
将 damon_hugetlb_mkold() 从 vaddr.c 移至 ops-common.c/h,使 paddr 操作集也能使用,未改变行为。
2/6
mm/damon/ops-common: handle hugetlb folios in folio mkold/young rmap walkers
为 damon_folio_mkold_one/young_one 增加 hugetlb 分支:mkold 复用 damon_hugetlb_mkold(),young 用新增 damon_hugetlb_young() 处理 huge PTE,避免按普通 PTE 错误操作。
3/6
mm/damon/paddr: support hugetlb folios in access monitoring
新增 damon_get_folio_incl_hugetlb() 以接受 hugetlb folio,并用于 paddr 的 mkold/young 原语,修复 hugetlb 不在 LRU 导致采样永远失败的问题。
4/6
mm/damon: support flush-assisted access bit clearing for monitoring
DAMON 采样清 accessed bit 不 flush TLB,hugetlb 长命映射使 bit 不重燃;新增 aging_flush 选项,清除后 flush TLB 恢复真实访问率。
5/6
mm/damon/sysfs: support aging_flush
DAMON sysfs 新增上下文文件 aging_flush 选项,通过 kstrtobool 解析布尔值,默认 N 与现有行为一致。
6/6
mm/damon/stat: support aging_flush
DAMON_STAT 新增 aging_flush 模块参数,在构建上下文时应用,默认 off;hugetlb 宿主机可设 cmdline 启用 flush 辅助采样。