Commit 24cd19a2 authored by Lai Jiangshan's avatar Lai Jiangshan Committed by Paolo Bonzini

KVM: X86: Update mmu->pdptrs only when it is changed

It is unchanged in most cases.
Signed-off-by: default avatarLai Jiangshan <laijs@linux.alibaba.com>
Message-Id: <20211111144527.88852-1-jiangshanlai@gmail.com>
Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
parent 2e9ebd55
...@@ -828,9 +828,12 @@ int load_pdptrs(struct kvm_vcpu *vcpu, struct kvm_mmu *mmu, unsigned long cr3) ...@@ -828,9 +828,12 @@ int load_pdptrs(struct kvm_vcpu *vcpu, struct kvm_mmu *mmu, unsigned long cr3)
} }
} }
memcpy(mmu->pdptrs, pdpte, sizeof(mmu->pdptrs)); kvm_register_mark_available(vcpu, VCPU_EXREG_PDPTR);
kvm_register_mark_dirty(vcpu, VCPU_EXREG_PDPTR); if (memcmp(mmu->pdptrs, pdpte, sizeof(mmu->pdptrs))) {
kvm_make_request(KVM_REQ_LOAD_MMU_PGD, vcpu); memcpy(mmu->pdptrs, pdpte, sizeof(mmu->pdptrs));
kvm_register_mark_dirty(vcpu, VCPU_EXREG_PDPTR);
kvm_make_request(KVM_REQ_LOAD_MMU_PGD, vcpu);
}
vcpu->arch.pdptrs_from_userspace = false; vcpu->arch.pdptrs_from_userspace = false;
return 1; return 1;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment