• Andrew Jones's avatar
    x86: kvm: rate-limit global clock updates · 7e44e449
    Andrew Jones authored
    When we update a vcpu's local clock it may pick up an NTP correction.
    We can't wait an indeterminate amount of time for other vcpus to pick
    up that correction, so commit 0061d53d introduced a global clock
    update. However, we can't request a global clock update on every vcpu
    load either (which is what happens if the tsc is marked as unstable).
    The solution is to rate-limit the global clock updates. Marcelo
    calculated that we should delay the global clock updates no more
    than 0.1s as follows:
    
    Assume an NTP correction c is applied to one vcpu, but not the other,
    then in n seconds the delta of the vcpu system_timestamps will be
    c * n. If we assume a correction of 500ppm (worst-case), then the two
    vcpus will diverge 50us in 0.1s, which is a considerable amount.
    Signed-off-by: default avatarAndrew Jones <drjones@redhat.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    7e44e449
x86.c 188 KB