2015-12-06 35 views
1

我正在做KVM內存中的東西。我注意到,有時會調用kvm_mmu_notifier_invalidate_range_start(),然後kvm_unmap_hva_range(),然後drop_stpe(),這將設置一個特定的零點爲零。我想在QEMU中從HVA到PFN的映射發生了變化,所以它需要使那些指向那些PFN的sptes無效,對嗎?
我做了一些cow機制的spte,所以drop_spte()使它很難工作。我可以在內存中放置一個頁面,以便從HVA到PFN的映射不會改變嗎?當我CoW訪客頁面時,我想固定一個頁面,這樣它不會意外掉落。
非常感謝!如何將訪客頁面固定在KVM的內存中?

回答

1

我想kvm_get_pfn()可以用來固定一個pfn。您可以使用gfn_to_pfn()來獲取與gfn相對應的pfn。要取消固定頁面,您可以使用kvm_release_pfn_clean()。

+0

謝謝!我使用kvm_get_pfn()來處理那些pfn。不過,我仍然可以看到其中一些將被丟棄。 – tamlok

+0

這些可能是MMIO頁面。你可以嘗試get_page(pfn_to_page(pfn))這些頁面。 – Yogi

相關問題