KVM: SVM: Document the ASID logic in svm_flush_tlb()
Add a comment in svm_flush_tlb() to document why it flushes only the current ASID, even when it is invoked when flushing remote TLBs. Cc: Tom Lendacky <thomas.lendacky@amd.com> Signed-off-by: Sean Christopherson <sean.j.christopherson@intel.com> Message-Id: <20200320212833.3507-22-sean.j.christopherson@intel.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
33d19ec9b1
commit
4a41e43cbe
@ -3157,6 +3157,13 @@ void svm_flush_tlb(struct kvm_vcpu *vcpu)
|
||||
{
|
||||
struct vcpu_svm *svm = to_svm(vcpu);
|
||||
|
||||
/*
|
||||
* Flush only the current ASID even if the TLB flush was invoked via
|
||||
* kvm_flush_remote_tlbs(). Although flushing remote TLBs requires all
|
||||
* ASIDs to be flushed, KVM uses a single ASID for L1 and L2, and
|
||||
* unconditionally does a TLB flush on both nested VM-Enter and nested
|
||||
* VM-Exit (via kvm_mmu_reset_context()).
|
||||
*/
|
||||
if (static_cpu_has(X86_FEATURE_FLUSHBYASID))
|
||||
svm->vmcb->control.tlb_ctl = TLB_CONTROL_FLUSH_ASID;
|
||||
else
|
||||
|
Loading…
x
Reference in New Issue
Block a user