v4
2026-08-12
khugepaged 清理与辅助函数 · v4
khugepaged 清理 v4:重构扫描状态初始化,提取引用检查 helper,已合入 mm-unstable。
原始补丁链接
子 Patch(7)
1/7
mm/khugepaged: refactor per-scan state clearing into collapse_control_init_scan()
提取 collapse_scan_pmd/file 重复清零 node_load/alloc_nmask/mthp_present_ptes 为 collapse_control_init_scan(),为文件扫描使用位图做准备,无功能变化。
2/7
mm/khugepaged: extract reference check into folio_pte_referenced() helper
将 __collapse_huge_page_isolate 与 collapse_scan_pmd 中重复的引用检查提取为 folio_pte_referenced(),并更新 young PTE 注释,无功能变化。
3/7
mm/khugepaged: introduce a count_collapse_event() helper
新增 count_collapse_event():PMD collapse 同时记 vm_event 和 mTHP stat,mTHP collapse 仅记后者,消除重复计数代码。
4/7
mm/khugepaged: fix outdated comments
修正 khugepaged 过时注释:更新引用计数检查、pmdp_collapse_flush、collapse_scan_pmd 名称、mmap_lock/folio lock 术语,澄清 max_ptes_none 位置。
5/7
mm/khugepaged: Refactor the PTE state checks into a helper
将匿名 collapse 两处 PTE 状态检查合并为 collapse_check_pte(),用 pte_check_context 传参,失败经 pte_check_fail();anon 失败改 WARN,用 vm_normal_folio() 取 folio。
6/7
mm/khugepaged: unmap pte before releasing vma write lock
khugepaged 改为先 unmap PTE 再释放 anon_vma 写锁,避免在持锁时操作页表;虽因 mmap_write_lock 仍安全,但顺序更清晰。
7/7
mm: Documentation: clarify where the mTHP stats live
transhuge.rst 补充 mTHP 统计路径 /sys/kernel/mm/transparent_hugepage/hugepages-kB/stats/,原说明只提 /proc/vmstat 的 PMD 情况,并补句号。