• Marcelo Tosatti's avatar
    x86: kvmguest: use TSC clocksource if invariant TSC is exposed · 7539b174
    Marcelo Tosatti authored
    The invariant TSC bit has the following meaning:
    
    "The time stamp counter in newer processors may support an enhancement,
    referred to as invariant TSC. Processor's support for invariant TSC
    is indicated by CPUID.80000007H:EDX[8]. The invariant TSC will run
    at a constant rate in all ACPI P-, C-. and T-states. This is the
    architectural behavior moving forward. On processors with invariant TSC
    support, the OS may use the TSC for wall clock timer services (instead
    of ACPI or HPET timers). TSC reads are much more efficient and do not
    incur the overhead associated with a ring transition or access to a
    platform resource."
    
    IOW, TSC does not change frequency. In such case, and with
    TSC scaling hardware available to handle migration, it is possible
    to use the TSC clocksource directly, whose system calls are
    faster.
    
    Reduce the rating of kvmclock clocksource to allow TSC clocksource
    to be the default if invariant TSC is exposed.
    Signed-off-by: default avatarMarcelo Tosatti <mtosatti@redhat.com>
    
    v2: Use feature bits and tsc_unstable() check (Sean Christopherson)
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    7539b174
kvmclock.c 9.38 KB