KVM: MMU: set spte accessed bit properly
Set spte accessed bit only if guest_initiated == 1 that means the really accessed Signed-off-by: Xiao Guangrong <xiaoguangrong@cn.fujitsu.com> Signed-off-by: Avi Kivity <avi@redhat.com>
This commit is contained in:
committed by
Marcelo Tosatti
parent
da8dc75f0c
commit
1b7fd45c32
@@ -3307,11 +3307,11 @@ void kvm_mmu_pte_write(struct kvm_vcpu *vcpu, gpa_t gpa,
|
|||||||
spin_lock(&vcpu->kvm->mmu_lock);
|
spin_lock(&vcpu->kvm->mmu_lock);
|
||||||
if (atomic_read(&vcpu->kvm->arch.invlpg_counter) != invlpg_counter)
|
if (atomic_read(&vcpu->kvm->arch.invlpg_counter) != invlpg_counter)
|
||||||
gentry = 0;
|
gentry = 0;
|
||||||
kvm_mmu_access_page(vcpu, gfn);
|
|
||||||
kvm_mmu_free_some_pages(vcpu);
|
kvm_mmu_free_some_pages(vcpu);
|
||||||
++vcpu->kvm->stat.mmu_pte_write;
|
++vcpu->kvm->stat.mmu_pte_write;
|
||||||
trace_kvm_mmu_audit(vcpu, AUDIT_PRE_PTE_WRITE);
|
trace_kvm_mmu_audit(vcpu, AUDIT_PRE_PTE_WRITE);
|
||||||
if (guest_initiated) {
|
if (guest_initiated) {
|
||||||
|
kvm_mmu_access_page(vcpu, gfn);
|
||||||
if (gfn == vcpu->arch.last_pt_write_gfn
|
if (gfn == vcpu->arch.last_pt_write_gfn
|
||||||
&& !last_updated_pte_accessed(vcpu)) {
|
&& !last_updated_pte_accessed(vcpu)) {
|
||||||
++vcpu->arch.last_pt_write_count;
|
++vcpu->arch.last_pt_write_count;
|
||||||
|
Reference in New Issue
Block a user