On Wed, 2025-03-26 at 19:36 +0000, Yosry Ahmed wrote: > Currently, when a vCPU is migrated to a new physical CPU, the ASID > generation is reset to trigger allocating a new ASID. In preparation for > using a static ASID per VM, just flush the ASID in this case (falling > back to flushing everything if FLUSBYASID is not available). > > Suggested-by: Sean Christopherson <seanjc@xxxxxxxxxx> > Signed-off-by: Yosry Ahmed <yosry.ahmed@xxxxxxxxx> > --- > arch/x86/kvm/svm/svm.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c > index 5f71b125010d9..18bfc3d3f9ba1 100644 > --- a/arch/x86/kvm/svm/svm.c > +++ b/arch/x86/kvm/svm/svm.c > @@ -3626,12 +3626,12 @@ static int pre_svm_run(struct kvm_vcpu *vcpu) > struct vcpu_svm *svm = to_svm(vcpu); > > /* > - * If the previous vmrun of the vmcb occurred on a different physical > - * cpu, then mark the vmcb dirty and assign a new asid. Hardware's > - * vmcb clean bits are per logical CPU, as are KVM's asid assignments. > + * If the previous VMRUN of the VMCB occurred on a different physical > + * CPU, then mark the VMCB dirty and flush the ASID. Hardware's > + * VMCB clean bits are per logical CPU, as are KVM's ASID assignments. > */ > if (unlikely(svm->current_vmcb->cpu != vcpu->cpu)) { > - svm->current_vmcb->asid_generation = 0; > + vmcb_set_flush_asid(svm->vmcb); > vmcb_mark_all_dirty(svm->vmcb); > svm->current_vmcb->cpu = vcpu->cpu; > } Reviewed-by: Maxim Levitsky <mlevitsk@xxxxxxxxxx> Best regards, Maxim Levitsky