Re: [patch 2/2] KVM: x86: add option to advance tscdeadline hrtimer expiration

Paolo Bonzini
2014-12-10T17:29:35Z

On 10/12/2014 17:53, Marcelo.Tosatti@amt.cnet wrote:
> For the hrtimer which emulates the tscdeadline timer in the guest,
> add an option to advance expiration, and busy spin on VM-entry waiting
> for the actual expiration time to elapse.
>
> This allows achieving low latencies in cyclictest (or any scenario
> which requires strict timing regarding timer expiration).
>
> Reduces cyclictest avg latency by 50%.
>
> Note: this option requires tuning to find the appropriate value
> for a particular hardware/guest combination. One method is to measure the
> average delay between apic_timer_fn and VM-entry.
> Another method is to start with 1000ns, and increase the value
> in say 500ns increments until avg cyclictest numbers stop decreasing.
>
> Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>

What is the latency value that you find in practice, for both
apic_timer_fn to vmentry? Or for apic_timer_fn to just before vmrun?
Let's start with a kvm-unit-tests patch to measure this value.

We can then decide whether to hardcode a small default value (e.g.
1000-3000) and make it a module parameter? Or perhaps start with a
higher value (twice what you find in practice?) and adjust it towards a
target every time wait_lapic_expire is called. But in order to judge
the correct approach, I need to see the numbers.

Paolo