On Wed, Sep 26, 2018 at 9:23 AM, Sean Christopherson <sean.j.christopherson@xxxxxxxxx> wrote: > Add a dedicated flag to track if vmcs02 has been initialized, i.e. > the constant state for vmcs02 has been written to the backing VMCS. > The launched flag (in struct loaded_vmcs) gets cleared on logical > CPU migration to mirror hardware behavior[1], i.e. using the launched > flag to determine whether or not vmcs02 constant state needs to be > initialized results in unnecessarily re-initializing the VMCS when > migrating between logical CPUS. > > [1] The active VMCS needs to be VMCLEARed before it can be migrated > to a different logical CPU. Hardware's VMCS cache is per-CPU > and is not coherent between CPUs. VMCLEAR flushes the cache so > that any dirty data is written back to memory. A side effect > of VMCLEAR is that it also clears the VMCS's internal launch > flag, which KVM must mirror because VMRESUME must be used to > run a previously launched VMCS. > > Suggested-by: Jim Mattson <jmattson@xxxxxxxxxx> > Signed-off-by: Sean Christopherson <sean.j.christopherson@xxxxxxxxx> Reviewed-by: Jim Mattson <jmattson@xxxxxxxxxx>