v1
2026-09-08
支持拆分无映射swapcache大folio · v1
允许无 mapping 的 swapcache folio 走 order-0 分割路径,使 hwpoison 能隔离其中中毒页,并加测试。
原始补丁链接
子 Patch(3)
1/3
mm/huge_memory: allow splitting mappingless swapcache folios
修改 folio_check_splittable():folio 无 mapping 但在 swap cache 时允许 split,避免 shmem 换出后误判 truncated 而 -EBUSY;XArray 初始化不绑定 mapping,仅映射文件 folio 再赋值。
2/3
mm: add KUnit coverage for mappingless swapcache folios
为 folio_check_splittable() 添加 KUnit 测试,覆盖普通 mappingless folio 拒绝、swapcache mappingless 接受及不支持 order/split 类型拒绝;函数未导出,仅 KUnit 内建时编译。
3/3
selftests/mm: test hwpoison recovery of mappingless swapcache THPs
新增 selftests/mm 测试:对 MADV_PAGEOUT 后的 shmem THP 尾页触发 memory_failure(),验证 folio 被 split、仅目标 PFN 被 poison、剩余数据可 fault 回;使用 loop 交换设备并注册进 memory-failure 套件。