diff options
author | Wanpeng Li | 2018-10-09 03:02:08 +0200 |
---|---|---|
committer | Paolo Bonzini | 2018-10-17 00:25:54 +0200 |
commit | 3b8a5df6c4dc6df2ab17d099fb157032f80bdca2 (patch) | |
tree | 1215438b19491bfc167ed694bd0b8805fdff8317 /tools | |
parent | KVM: nVMX: Do not flush TLB on L1<->L2 transitions if L1 uses VPID and EPT (diff) | |
download | kernel-qcow2-linux-3b8a5df6c4dc6df2ab17d099fb157032f80bdca2.tar.gz kernel-qcow2-linux-3b8a5df6c4dc6df2ab17d099fb157032f80bdca2.tar.xz kernel-qcow2-linux-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')
0 files changed, 0 insertions, 0 deletions