KVM: PPC: Release clean pages as clean
authorAlexander Graf <agraf@suse.de>
Thu, 15 Apr 2010 22:11:49 +0000 (00:11 +0200)
committerAvi Kivity <avi@redhat.com>
Mon, 17 May 2010 09:18:40 +0000 (12:18 +0300)
When we mapped a page as read-only, we can just release it as clean to
KVM's page claim mechanisms, because we're pretty sure it hasn't been
touched.

Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Avi Kivity <avi@redhat.com>
arch/powerpc/kvm/book3s_64_mmu_host.c

index 0eea589dbef06ebbe19bc5968f301dca516008ba..b2301543837180c6d0874417f3500ae3f29470fa 100644 (file)
@@ -55,7 +55,11 @@ static void invalidate_pte(struct hpte_cache *pte)
                               MMU_PAGE_4K, MMU_SEGSIZE_256M,
                               false);
        pte->host_va = 0;
-       kvm_release_pfn_dirty(pte->pfn);
+
+       if (pte->pte.may_write)
+               kvm_release_pfn_dirty(pte->pfn);
+       else
+               kvm_release_pfn_clean(pte->pfn);
 }
 
 void kvmppc_mmu_pte_flush(struct kvm_vcpu *vcpu, u64 guest_ea, u64 ea_mask)