[PATCH 36/50] KVM: MMU: When updating the dirty bit, inform the mmu about it

From: Avi Kivity
Date: Sun Dec 23 2007 - 10:01:36 EST


Since the mmu uses different shadow pages for dirty large pages and clean
large pages, this allows the mmu to drop ptes that are now invalid.

Signed-off-by: Avi Kivity <avi@xxxxxxxxxxxx>
---
drivers/kvm/paging_tmpl.h | 5 +++++
1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/drivers/kvm/paging_tmpl.h b/drivers/kvm/paging_tmpl.h
index a0f84a5..a9e687b 100644
--- a/drivers/kvm/paging_tmpl.h
+++ b/drivers/kvm/paging_tmpl.h
@@ -74,9 +74,14 @@ static void FNAME(update_dirty_bit)(struct kvm_vcpu *vcpu,
pt_element_t *ptep,
gfn_t table_gfn)
{
+ gpa_t pte_gpa;
+
if (write_fault && !is_dirty_pte(*ptep)) {
mark_page_dirty(vcpu->kvm, table_gfn);
*ptep |= PT_DIRTY_MASK;
+ pte_gpa = ((gpa_t)table_gfn << PAGE_SHIFT);
+ pte_gpa += offset_in_page(ptep);
+ kvm_mmu_pte_write(vcpu, pte_gpa, (u8 *)ptep, sizeof(*ptep));
}
}

--
1.5.3.7

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/