Messages in this thread | | | Subject | Re: [PATCH v2] KVM: X86: Ultra fast single target IPI fastpath | From | Paolo Bonzini <> | Date | Fri, 10 Apr 2020 17:50:35 +0200 |
| |
On 10/04/20 17:35, Sean Christopherson wrote: > IMO, this should come at the very end of vmx_vcpu_run(). At a minimum, it > needs to be moved below the #MC handling and below > > if (vmx->fail || (vmx->exit_reason & VMX_EXIT_REASONS_FAILED_VMENTRY)) > return;
Why? It cannot run in any of those cases, since the vmx->exit_reason won't match.
> KVM more or less assumes vmx->idt_vectoring_info is always valid, and it's > not obvious that a generic fastpath call can safely run before > vmx_complete_interrupts(), e.g. the kvm_clear_interrupt_queue() call.
Not KVM, rather vmx.c. You're right about a generic fastpath, but in this case kvm_irq_delivery_to_apic_fast is not touching VMX state; even if you have a self-IPI, the modification of vCPU state is only scheduled here and will happen later via either kvm_x86_ops.sync_pir_to_irr or KVM_REQ_EVENT.
Paolo
| |