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>