我正在 KVM 内存中做一些事情。我注意到有时会调用kvm_mmu_notifier_invalidate_range_start()
,然后调用kvm_unmap_hva_range()
,然后调用drop_stpe()
,这会将某个spte设置为零。我猜想 QEMU 中从 HVA 到 PFN 的映射发生了变化,因此需要使指向这些 PFN 的 sptes 无效,对吗?
我对 spte 做了一些 CoW 机制,因此 drop_spte() 使其难以工作。我可以将一个页面固定在内存中,这样从 HVA 到 PFN 的映射就不会改变吗?我想在 CoW 访客页面时固定页面,这样它就不会被意外删除。
非常感谢!
最佳答案
我猜 kvm_get_pfn() 可以用来固定 pfn。您可以使用 gfn_to_pfn() 来获取 gfn 对应的 pfn。要取消固定页面,您可以使用 kvm_release_pfn_clean()。
关于memory-management - 如何在 KVM 内存中固定访客页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34115301/