Re: [patch 3/3] KVM: x86: add tracepoint to wait_lapic_expire

Marcelo Tosatti
2014-12-16T12:16:10Z

On Tue, Dec 16, 2014 at 10:03:39AM +0100, Paolo Bonzini wrote:
>
>
> On 15/12/2014 23:06, Marcelo Tosatti wrote:
> > Add tracepoint to wait_lapic_expire.
> >
> > Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
> >
> > Index: kvm/arch/x86/kvm/lapic.c
> > ===================================================================
> > --- kvm.orig/arch/x86/kvm/lapic.c
> > +++ kvm/arch/x86/kvm/lapic.c
> > @@ -1121,6 +1121,7 @@ void wait_lapic_expire(struct kvm_vcpu *
> > {
> > struct kvm_lapic *apic = vcpu->arch.apic;
> > u64 guest_tsc, tsc_deadline;
> > + unsigned int total_delay = 0;
> >
> > if (!kvm_vcpu_has_lapic(vcpu))
> > return;
> > @@ -1138,9 +1139,13 @@ void wait_lapic_expire(struct kvm_vcpu *
> > while (guest_tsc < tsc_deadline) {
> > int delay = min(tsc_deadline - guest_tsc, 1000ULL);
> >
> > + total_delay += delay;
> > +
> > __delay(delay);
> > guest_tsc = kvm_x86_ops->read_l1_tsc(vcpu, native_read_tsc());
> > }
> > +
> > + trace_kvm_wait_lapic_expire(vcpu->vcpu_id, total_delay);
>
> Let's add guest_tsc - tsc_deadline to the tracepoint. This should
> simplify the tuning of the parameter.
>
> Paolo

total_delay is very close to that, except the summands are

1000 + 1000 + ... + "remainder"

Yes?

BTW its very easy to tune the parameter with the kvm-unit-test test
(the optimal value is clear). I'll write a document.