From: Zhang Xiantao <[EMAIL PROTECTED]>
Date: Fri, 14 Dec 2007 01:14:44 +0800
Subject: [PATCH] kvm : portability : moving pt fileds to arch.

The three fileds last_pt_write_gfn, last_pt_write_count,
last_pte_updated are moved to kvm_vcpu_arch.
Signed-off-by: Zhang Xiantao <[EMAIL PROTECTED]>
---
 drivers/kvm/mmu.c         |   18 +++++++++---------
 drivers/kvm/paging_tmpl.h |    4 ++--
 drivers/kvm/x86.h         |    8 ++++----
 3 files changed, 15 insertions(+), 15 deletions(-)

diff --git a/drivers/kvm/mmu.c b/drivers/kvm/mmu.c
index 9524bbf..da1dedb 100644
--- a/drivers/kvm/mmu.c
+++ b/drivers/kvm/mmu.c
@@ -768,7 +768,7 @@ static void kvm_mmu_reset_last_pte_updated(struct
kvm *kvm)
 
        for (i = 0; i < KVM_MAX_VCPUS; ++i)
                if (kvm->vcpus[i])
-                       kvm->vcpus[i]->last_pte_updated = NULL;
+                       kvm->vcpus[i]->arch.last_pte_updated = NULL;
 }
 
 static void kvm_mmu_zap_page(struct kvm *kvm, struct kvm_mmu_page *sp)
@@ -962,7 +962,7 @@ unshadowed:
        else
                kvm_release_page_clean(page);
        if (!ptwrite || !*ptwrite)
-               vcpu->last_pte_updated = shadow_pte;
+               vcpu->arch.last_pte_updated = shadow_pte;
 }
 
 static void nonpaging_new_cr3(struct kvm_vcpu *vcpu)
@@ -1323,7 +1323,7 @@ static void mmu_pte_write_flush_tlb(struct
kvm_vcpu *vcpu, u64 old, u64 new)
 
 static bool last_updated_pte_accessed(struct kvm_vcpu *vcpu)
 {
-       u64 *spte = vcpu->last_pte_updated;
+       u64 *spte = vcpu->arch.last_pte_updated;
 
        return !!(spte && (*spte & PT_ACCESSED_MASK));
 }
@@ -1350,15 +1350,15 @@ void kvm_mmu_pte_write(struct kvm_vcpu *vcpu,
gpa_t gpa,
        pgprintk("%s: gpa %llx bytes %d\n", __FUNCTION__, gpa, bytes);
        ++vcpu->kvm->stat.mmu_pte_write;
        kvm_mmu_audit(vcpu, "pre pte write");
-       if (gfn == vcpu->last_pt_write_gfn
+       if (gfn == vcpu->arch.last_pt_write_gfn
            && !last_updated_pte_accessed(vcpu)) {
-               ++vcpu->last_pt_write_count;
-               if (vcpu->last_pt_write_count >= 3)
+               ++vcpu->arch.last_pt_write_count;
+               if (vcpu->arch.last_pt_write_count >= 3)
                        flooded = 1;
        } else {
-               vcpu->last_pt_write_gfn = gfn;
-               vcpu->last_pt_write_count = 1;
-               vcpu->last_pte_updated = NULL;
+               vcpu->arch.last_pt_write_gfn = gfn;
+               vcpu->arch.last_pt_write_count = 1;
+               vcpu->arch.last_pte_updated = NULL;
        }
        index = kvm_page_table_hashfn(gfn) % KVM_NUM_MMU_PAGES;
        bucket = &vcpu->kvm->mmu_page_hash[index];
diff --git a/drivers/kvm/paging_tmpl.h b/drivers/kvm/paging_tmpl.h
index f18543e..56b88f7 100644
--- a/drivers/kvm/paging_tmpl.h
+++ b/drivers/kvm/paging_tmpl.h
@@ -380,7 +380,7 @@ static int FNAME(page_fault)(struct kvm_vcpu *vcpu,
gva_t addr,
        if (!r) {
                pgprintk("%s: guest page fault\n", __FUNCTION__);
                inject_page_fault(vcpu, addr, walker.error_code);
-               vcpu->last_pt_write_count = 0; /* reset fork detector */
+               vcpu->arch.last_pt_write_count = 0; /* reset fork
detector */
                return 0;
        }
 
@@ -390,7 +390,7 @@ static int FNAME(page_fault)(struct kvm_vcpu *vcpu,
gva_t addr,
                 shadow_pte, *shadow_pte, write_pt);
 
        if (!write_pt)
-               vcpu->last_pt_write_count = 0; /* reset fork detector */
+               vcpu->arch.last_pt_write_count = 0; /* reset fork
detector */
 
        /*
         * mmio: emulate if accessible, otherwise its a guest fault.
diff --git a/drivers/kvm/x86.h b/drivers/kvm/x86.h
index ce0d2a9..466fe68 100644
--- a/drivers/kvm/x86.h
+++ b/drivers/kvm/x86.h
@@ -125,15 +125,15 @@ struct kvm_vcpu_arch {
        struct kvm_mmu_memory_cache mmu_page_cache;
        struct kvm_mmu_memory_cache mmu_page_header_cache;
 
+       gfn_t last_pt_write_gfn;
+       int   last_pt_write_count;
+       u64  *last_pte_updated;
+
 };
 
 struct kvm_vcpu {
        KVM_VCPU_COMM;
 
-       gfn_t last_pt_write_gfn;
-       int   last_pt_write_count;
-       u64  *last_pte_updated;
-
 
        struct i387_fxsave_struct host_fx_image;
        struct i387_fxsave_struct guest_fx_image;
-- 
1.5.1.2

Attachment: 0008-kvm-portability-moving-pt-fileds-to-arch.patch
Description: 0008-kvm-portability-moving-pt-fileds-to-arch.patch

-------------------------------------------------------------------------
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services
for just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
_______________________________________________
kvm-devel mailing list
kvm-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/kvm-devel

Reply via email to