Re: [PATCH 06/10] KVM: x86: Add KVM_VCPU_TSC_SCALE and fix the documentation on TSC migration

From: Paul Durrant
Date: Fri Apr 19 2024 - 11:50:44 EST


On 18/04/2024 20:34, David Woodhouse wrote:
From: David Woodhouse <dwmw@xxxxxxxxxxxx>

The documentation on TSC migration using KVM_VCPU_TSC_OFFSET is woefully
inadequate. It ignores TSC scaling, and ignores the fact that the host
TSC may differ from one host to the next (and in fact because of the way
the kernel calibrates it, it generally differs from one boot to the next
even on the same hardware).

Add KVM_VCPU_TSC_SCALE to extract the actual scale ratio and frac_bits,
and attempt to document the *awful* process that we're requiring userspace
to follow to merely preserve the TSC across migration.

I may have thrown up in my mouth a little when writing that documentation.
It's an awful API. If we do this, we should be ashamed of ourselves.
(I also haven't tested the documented process yet).

Let's use Simon's KVM_VCPU_TSC_VALUE instead.
https://lore.kernel.org/all/20230202165950.483430-1-sveith@xxxxxxxxx/

Signed-off-by: David Woodhouse <dwmw@xxxxxxxxxxxx>
---
Documentation/virt/kvm/devices/vcpu.rst | 115 ++++++++++++++++++------
arch/x86/include/uapi/asm/kvm.h | 6 ++
arch/x86/kvm/x86.c | 15 ++++
3 files changed, 109 insertions(+), 27 deletions(-)


Reviewed-by: Paul Durrant <paul@xxxxxxx>