On Fri, Apr 13, 2018 at 4:23 AM, Paolo Bonzini <pbonzini@xxxxxxxxxx> wrote: > From: KarimAllah Ahmed <karahmed@xxxxxxxxx> > > Update 'tsc_offset' on vmenty/vmexit of L2 guests to ensure that it always > captures the TSC_OFFSET of the running guest whether it is the L1 or L2 > guest. > > Cc: Jim Mattson <jmattson@xxxxxxxxxx> > Cc: Paolo Bonzini <pbonzini@xxxxxxxxxx> > Cc: Radim Krčmář <rkrcmar@xxxxxxxxxx> > Cc: kvm@xxxxxxxxxxxxxxx > Cc: linux-kernel@xxxxxxxxxxxxxxx > Suggested-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> > Signed-off-by: KarimAllah Ahmed <karahmed@xxxxxxxxx> > [AMD changes, fix update_ia32_tsc_adjust_msr. - Paolo] > Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> > @@ -11489,6 +11497,9 @@ static int nested_vmx_run(struct kvm_vcpu *vcpu, bool launch) > if (enable_shadow_vmcs) > copy_shadow_to_vmcs12(vmx); > > + if (vmcs12->cpu_based_vm_exec_control & CPU_BASED_USE_TSC_OFFSETING) > + vcpu->arch.tsc_offset += vmcs12->tsc_offset; > + This seems a little early, since we don't restore the L1 TSC offset on the nested_vmx_failValid path.