Re: [PATCH v14 08/25] x86/kvmclock: Avoid TSC recalibration

Paolo Bonzini
2018-07-18T11:14:02Z

On 18/07/2018 04:21, Pavel Tatashin wrote:
> From: Peter Zijlstra <peterz@infradead.org>
>
> If the host gives us a TSC rate, assume it is good and don't try and
> recalibrate things against virtual timer hardware.
>
> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
> Signed-off-by: Pavel Tatashin <pasha.tatashin@oracle.com>
> ---
> arch/x86/kernel/kvmclock.c | 11 ++++++++++-
> 1 file changed, 10 insertions(+), 1 deletion(-)
>
> diff --git a/arch/x86/kernel/kvmclock.c b/arch/x86/kernel/kvmclock.c
> index ed170171fe49..da0ede8ac8f6 100644
> --- a/arch/x86/kernel/kvmclock.c
> +++ b/arch/x86/kernel/kvmclock.c
> @@ -141,7 +141,16 @@ static inline void kvm_sched_clock_init(bool stable)
> */
> static unsigned long kvm_get_tsc_khz(void)
> {
> - return pvclock_tsc_khz(this_cpu_pvti());
> + unsigned long tsc_khz = pvclock_tsc_khz(this_cpu_pvti());
> +
> + /*
> + * TSC frequency is reported by the host; calibration against (virtual)
> + * HPET/PM-timer in a guest is dodgy and pointless since the host
> + * already did it for us where required.
> + */
> + setup_force_cpu_cap(X86_FEATURE_TSC_KNOWN_FREQ);
> +
> + return tsc_khz;
> }
>
> static void kvm_get_preset_lpj(void)
>

This patch (really a similar one) has just been sent to Linus.

Paolo