v4
2026-07-28
RFC:liveupdate支持guest_memfd保留 · v4
提出为KVM liveupdate保留guest_memfd的初步设计,支持VM保存恢复。
原始补丁链接
子 Patch(11)
1/11
liveupdate: Add LIVEUPDATE_GUEST_MEMFD config option
新增LIVEUPDATE_GUEST_MEMFD Kconfig选项,支持guest_memfd文件在live update中保留。
2/11
KVM: Introduce kvm_create_vm_file() helper
引入kvm_create_vm_file()辅助函数,封装kvm_create_vm()和anon_inode_getfile()调用。
3/11
KVM: Export kvm_uevent_notify_vm_create()
导出kvm_uevent_notify_vm_create()函数,允许在VM创建时触发uevent通知。
4/11
KVM: Track weak reference to vm_file in struct kvm
在struct kvm中添加弱引用vm_file字段(CONFIG_LIVEUPDATE_GUEST_MEMFD),支持反向文件解析。
5/11
KVM: LUO: Support VM preservation across live updates
注册LUO文件处理器实现KVM VM文件的序列化与反序列化,支持跨live update恢复。
6/11
KVM: guest_memfd: Move internal definitions to internal header
将guest_memfd内部结构定义移到私有头文件,并公开__kvm_gmem_create_file()以支持文件重建。
7/11
KVM: guest_memfd: Add support for freezing mappings
新增kvm_gmem_freeze(),通过全局SRCU同步冻结guest_memfd inode mapping,禁止并发fallocate和缺页分配,确保保存期间无修改。
8/11
KVM: guest_memfd: Add support for preservation via LUO
实现LUO保存恢复guest_memfd:冻结后序列化folio元数据和PFN,恢复时重建文件并插入PageCache,目前仅支持全共享PAGE_SIZE模式。
9/11
docs: liveupdate: Add documentation for VM and guest_memfd preservation
添加liveupdate/vmm.rst文档,说明VMM要求、作用域、排序约束及kvm_doc包含,更新core-api和MAINTAINERS。
10/11
KVM: selftests: Split ____vm_create() and add vm_create_from_fd()
拆分____vm_create()为vm_init_fields()和vm_init_memory_properties(),新增vm_create_from_fd()以从已有fd重建kvm_vm,便于保存测试。
11/11
KVM: selftests: Add guest_memfd_preservation_test
新增guest_memfd_preservation_test,分阶段验证跨kexec保存:pre-kexec写入模式并失败测试,post-kexec重建VM并校验数据一致性。