Re: [PATCH 0/2] KVM: MMU: support VMAs that got remap_pfn_range-ed

From: Xiao Guangrong
Date: Mon Jul 04 2016 - 04:03:24 EST




On 07/04/2016 03:48 PM, Paolo Bonzini wrote:


On 04/07/2016 09:37, Xiao Guangrong wrote:


It actually is a portion of the physical mmio which is set by vfio mmap.

So i do not think we need to care its refcount, i,e, we can consider it
as reserved_pfn,
Paolo?

nVidia provided me (offlist) with a simple patch that modified VFIO to
exhibit the problem, and it didn't use reserved PFNs. This is why the
commit message for the patch is not entirely accurate.


It's clear now.

But apart from this, it's much more obvious to consider the refcount.
The x86 MMU code doesn't care if the page is reserved or not;
mmu_set_spte does a kvm_release_pfn_clean, hence it makes sense for
hva_to_pfn_remapped to try doing a get_page (via kvm_get_pfn) after
invoking the fault handler, just like the get_user_pages family of
function does.

Well, it's little strange as you always try to get refcont
for a PFNMAP region without MIXEDMAP which indicates all the memory
in this region is no 'struct page' backend.

But it works as kvm_{get, release}_* have already been aware of
reserved_pfn, so i am okay with it......