KVM: MMU: Mark sp mmio cached when creating mmio spte

This will be used not to zap unrelated mmu pages when creating/moving
a memory slot later.

Reviewed-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Takuya Yoshikawa <yoshikawa_takuya_b1@lab.ntt.co.jp>
Signed-off-by: Gleb Natapov <gleb@redhat.com>
This commit is contained in:
Takuya Yoshikawa 2013-03-12 17:44:40 +09:00 committed by Gleb Natapov
parent 0238ea913c
commit 95b0430d1a
2 changed files with 4 additions and 0 deletions

View File

@ -230,6 +230,7 @@ struct kvm_mmu_page {
#endif
int write_flooding_count;
bool mmio_cached;
};
struct kvm_pio_request {

View File

@ -199,8 +199,11 @@ EXPORT_SYMBOL_GPL(kvm_mmu_set_mmio_spte_mask);
static void mark_mmio_spte(u64 *sptep, u64 gfn, unsigned access)
{
struct kvm_mmu_page *sp = page_header(__pa(sptep));
access &= ACC_WRITE_MASK | ACC_USER_MASK;
sp->mmio_cached = true;
trace_mark_mmio_spte(sptep, gfn, access);
mmu_spte_set(sptep, shadow_mmio_mask | access | gfn << PAGE_SHIFT);
}