v3
2026-07-13
重构 try_to_unmap_one · v3
转换rmap中hwpoison检查的page为folio,添加hugetlb专用unmap函数,重构匿名folio和lazyfree的unmap逻辑。
原始补丁链接
子 Patch(5)
1/5
mm/rmap: convert page -> folio for hwpoison checks
将 try_to_unmap_one 中 hwpoison 检查从 PageHWPoison(subpage) 改为 folio_test_hwpoison(),因 hugetlb 和非 hugetlb 场景下毒位均在 head page,同时将 VM_BUG_* 转为 VM_WARN_*。
2/5
mm/rmap: Add try_to_unmap_hugetlb_one
On 13/07/26 4:04 pm, David Hildenbrand (Arm) wrote: > On 7/10/26 15:16, Dev Jain wrote: » » » On 10/07/26 11:29 am, Dev Jain wrote: »> Simplify try_to_unmap_one() by separating the hugetlb parts i
3/5
mm/rmap: refactor some code around lazyfree folio unmapping
将 lazyfree folio 解除映射时检查脏页和意外引用的逻辑抽取为独立函数,返回是否中止;若中止则恢复 PTE 并退出,否则调整 RSS 统计并跳转到重命名的 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
新增 ttu_anon_folio() 作为匿名 folio 解除映射的统一入口,根据是否 lazyfree 分派到对应 helper,并将 PTE 恢复逻辑保留在调用者中。