• Marcelo Tosatti's avatar
    KVM: x86: workaround SuSE's 2.6.16 pvclock vs masterclock issue · 54750f2c
    Marcelo Tosatti authored
    SuSE's 2.6.16 kernel fails to boot if the delta between tsc_timestamp
    and rdtsc is larger than a given threshold:
    
     * If we get more than the below threshold into the future, we rerequest
     * the real time from the host again which has only little offset then
     * that we need to adjust using the TSC.
     *
     * For now that threshold is 1/5th of a jiffie. That should be good
     * enough accuracy for completely broken systems, but also give us swing
     * to not call out to the host all the time.
     */
    #define PVCLOCK_DELTA_MAX ((1000000000ULL / HZ) / 5)
    
    Disable masterclock support (which increases said delta) in case the
    boot vcpu does not use MSR_KVM_SYSTEM_TIME_NEW.
    
    Upstreams kernels which support pvclock vsyscalls (and therefore make
    use of PVCLOCK_STABLE_BIT) use MSR_KVM_SYSTEM_TIME_NEW.
    Signed-off-by: default avatarMarcelo Tosatti <mtosatti@redhat.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    54750f2c
kvm_host.h 32.2 KB