KVM: x86: add option to advance tscdeadline hrtimer expiration
authorMarcelo Tosatti <mtosatti@redhat.com>
Tue, 16 Dec 2014 14:08:15 +0000 (09:08 -0500)
committerPaolo Bonzini <pbonzini@redhat.com>
Thu, 8 Jan 2015 21:47:30 +0000 (22:47 +0100)
commitd0659d946be05e098883b6955d2764595997f6a4
tree710980f2f6e1c00c8c2659f366ece12999dd0812
parent7c6a98dfa1ba9dc64a62e73624ecea9995736bbd
KVM: x86: add option to advance tscdeadline hrtimer expiration

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 average cyclictest latency from 12us to 8us
on Core i5 desktop.

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>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/lapic.c
arch/x86/kvm/lapic.h
arch/x86/kvm/x86.c
arch/x86/kvm/x86.h