Re: [PATCH v5 12/34] KVM: SVM: Add initial support for a VMGEXIT VMEXIT
From: Sean Christopherson
Date: Mon Dec 14 2020 - 14:42:50 EST
On Mon, Dec 14, 2020, Tom Lendacky wrote:
> On 12/14/20 9:45 AM, Paolo Bonzini wrote:
> > On 10/12/20 18:09, Tom Lendacky wrote:
> >> @@ -3184,6 +3186,8 @@ static int svm_invoke_exit_handler(struct vcpu_svm
> >> *svm, u64 exit_code)
> >> return halt_interception(svm);
> >> else if (exit_code == SVM_EXIT_NPF)
> >> return npf_interception(svm);
> >> + else if (exit_code == SVM_EXIT_VMGEXIT)
> >> + return sev_handle_vmgexit(svm);
> >
> > Are these common enough to warrant putting them in this short list?
>
> A VMGEXIT exit occurs for any of the listed NAE events in the GHCB
> specification (e.g. CPUID, RDMSR/WRMSR, MMIO, port IO, etc.) if those
> events are being intercepted (or triggered in the case of MMIO). It will
> depend on what is considered common. Since SVM_EXIT_MSR was already in the
> list, I figured I should add VMGEXIT.
I agree VMGEXIT should be added to the hot path, it could very well be the most
common exit reason due to all instruction-based emulation getting funneled
through VMGEXIT.