v5
2026-07-27
持久化零页设为只读 · v5
使持久化巨大零页只读,为arm64和x86添加set_direct_map_ro_noflush。
原始补丁链接
子 Patch(3)
1/3
mm: make persistent huge zero folio read-only
将全局共享的persistent huge zero folio在直接映射中设为只读,防止内核bug写入零页,通过set_direct_map_ro_noflush()实现并立即刷新TLB。
2/3
arm64/mm: add set_direct_map_ro_noflush()
arm64实现set_direct_map_ro_noflush(),使用update_range_prot()在线性映射上设置PTE_RDONLY并清除PTE_WRITE,TLB刷新由调用方负责。
3/3
x86/mm: add set_direct_map_ro_noflush()
x86实现set_direct_map_ro_noflush(),通过CPA直接清除_PAGE_RW和_PAGE_DIRTY,禁用别名检查,TLB刷新留给调用方。