]> git.baikalelectronics.ru Git - kernel.git/commit
x86: kvmguest: use TSC clocksource if invariant TSC is exposed
authorMarcelo Tosatti <mtosatti@redhat.com>
Fri, 4 Jan 2019 17:54:14 +0000 (15:54 -0200)
committerPaolo Bonzini <pbonzini@redhat.com>
Wed, 20 Feb 2019 21:48:52 +0000 (22:48 +0100)
commit4c4905d8413c67ae2c71b27805cb644c8cb59f2e
tree6eeb5f8ee1e0d8a99769abde4741588f444eb6aa
parent49b59dd29d5ef8a1a769317448991dfe1074de2f
x86: kvmguest: use TSC clocksource if invariant TSC is exposed

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: Marcelo Tosatti <mtosatti@redhat.com>
v2: Use feature bits and tsc_unstable() check (Sean Christopherson)
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kernel/kvmclock.c