Re: [PATCH 1/2] X86/KVM: Properly update 'tsc_offset' to represent the running guest

From: Raslan, KarimAllah
Date: Fri Apr 13 2018 - 23:11:32 EST


On Fri, 2018-04-13 at 18:04 +0200, Paolo Bonzini wrote:
> On 13/04/2018 18:02, Jim Mattson wrote:
> >
> > 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.
> >
>
> Now this can be a nice one to introduce the VMX API tests. :) I'll try
> to do it on Monday as punishment for not noticing the bug. In the
> meanwhile, Karim, can you post a fixed fixed version?

done

>
> Paolo
>
Amazon Development Center Germany GmbH
Berlin - Dresden - Aachen
main office: Krausenstr. 38, 10117 Berlin
Geschaeftsfuehrer: Dr. Ralf Herbrich, Christian Schlaeger
Ust-ID: DE289237879
Eingetragen am Amtsgericht Charlottenburg HRB 149173 B