v2
2026-07-10
try_to_unmap_one重构 · v2
重构try_to_unmap_one,将page转换为folio用于hwpoison检查,并清理相关代码逻辑。
原始补丁链接
子 Patch(5)
1/5
mm/rmap: convert page -> folio for hwpoison checks
将 try_to_unmap_one() 中的 PageHWPoison(subpage) 检查转换为 folio_test_hwpoison(),并转换 VM_BUG_* 为 VM_WARN_*,因 hugetlb 和非 hugetlb 场景下头页均标记 poison。
2/5
mm/rmap: Add try_to_unmap_hugetlb_one
将 try_to_unmap_one() 中的 hugetlb 处理逻辑分离为 try_to_unmap_hugetlb_one(),基于 hugetlb 特性简化代码,无功能变化。
3/5
mm/rmap: refactor some code around lazyfree folio unmapping
将 lazyfree folio 解除映射后的脏页/引用检查逻辑重构为独立函数,返回是否中止操作,并重命名标签 “discard” 为 “finish_unmap” 以反映通用性。
4/5
mm/rmap: refactor anon folio unmap in try_to_unmap_one
将 try_to_unmap_one() 中匿名 swapbacked folio 的解除映射逻辑重构为 ttu_anon_swapbacked_folio() 函数,并重命名 subpage 变量为 page,无功能变化。
5/5
mm/rmap: add anon folio unmap dispatcher
为匿名folio解绑添加调度器,优化rmap遍历性能,减少锁竞争。