aboutsummaryrefslogtreecommitdiffstats
path: root/tools/testing/selftests/kvm/lib/x86.c
diff options
context:
space:
mode:
authorWanpeng Li <wanpengli@tencent.com>2018-10-09 09:02:08 +0800
committerPaolo Bonzini <pbonzini@redhat.com>2018-10-17 00:25:54 +0200
commit3b8a5df6c4dc6df2ab17d099fb157032f80bdca2 (patch)
tree1215438b19491bfc167ed694bd0b8805fdff8317 /tools/testing/selftests/kvm/lib/x86.c
parentKVM: nVMX: Do not flush TLB on L1<->L2 transitions if L1 uses VPID and EPT (diff)
downloadlinux-dev-3b8a5df6c4dc6df2ab17d099fb157032f80bdca2.tar.xz
linux-dev-3b8a5df6c4dc6df2ab17d099fb157032f80bdca2.zip
KVM: LAPIC: Tune lapic_timer_advance_ns automatically
In cloud environment, lapic_timer_advance_ns is needed to be tuned for every CPU generations, and every host kernel versions(the kvm-unit-tests/tscdeadline_latency.flat is 5700 cycles for upstream kernel and 9600 cycles for our 3.10 product kernel, both preemption_timer=N, Skylake server). This patch adds the capability to automatically tune lapic_timer_advance_ns step by step, the initial value is 1000ns as 'commit d0659d946be0 ("KVM: x86: add option to advance tscdeadline hrtimer expiration")' recommended, it will be reduced when it is too early, and increased when it is too late. The guest_tsc and tsc_deadline are hard to equal, so we assume we are done when the delta is within a small scope e.g. 100 cycles. This patch reduces latency (kvm-unit-tests/tscdeadline_latency, busy waits, preemption_timer enabled) from ~2600 cyles to ~1200 cyles on our Skylake server. Cc: Paolo Bonzini <pbonzini@redhat.com> Cc: Radim Krčmář <rkrcmar@redhat.com> Cc: Liran Alon <liran.alon@oracle.com> Signed-off-by: Wanpeng Li <wanpengli@tencent.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'tools/testing/selftests/kvm/lib/x86.c')
0 files changed, 0 insertions, 0 deletions