| From | Reiji Watanabe <> | Date | Tue, 18 May 2021 22:33:22 -0700 | Subject | Re: [PATCH 10/43] KVM: VMX: Move init_vmcs() invocation to vmx_vcpu_reset() |
| |
On Fri, Apr 23, 2021 at 5:48 PM Sean Christopherson <seanjc@google.com> wrote: > > Initialize constant VMCS state in vcpu_vcpu_reset() instead of in > vmx_vcpu_create(), which allows for the removal of the open coded "vCPU > load" sequence since ->vcpu_reset() is invoked while the vCPU is properly > loaded (which is the entire point of vCPU reset...). > > Deferring initialization is effectively a nop as it's impossible to > safely access the VMCS between the current call site and its new home, as > both the vCPU and the pCPU are put immediately after init_vmcs(), i.e. > the VMCS isn't guaranteed to be loaded. > > Note, task preemption is not a problem as vmx_sched_in() _can't_ touch > the VMCS as ->sched_in() is invoked before the vCPU, and thus VMCS, is > reloaded. I.e. the preemption path also can't consume VMCS state. > > Signed-off-by: Sean Christopherson <seanjc@google.com>
Reviewed-by: Reiji Watanabe <reijiw@google.com>
|