i386: Make migration fail when Hyper-V reenlightenment was enabled but 'user_tsc_khz...
commit561dbb41b1d752098249128d8462aaadc56fd15d
authorVitaly Kuznetsov <vkuznets@redhat.com>
Fri, 19 Mar 2021 12:38:01 +0000 (19 13:38 +0100)
committerPaolo Bonzini <pbonzini@redhat.com>
Fri, 19 Mar 2021 12:48:18 +0000 (19 08:48 -0400)
tree4fb17e7a7151927deb5ff2ba78de6b7723a020e8
parent816d20c927a930f1ff66656a8dafd9861806c602
i386: Make migration fail when Hyper-V reenlightenment was enabled but 'user_tsc_khz' is unset

KVM doesn't fully support Hyper-V reenlightenment notifications on
migration. In particular, it doesn't support emulating TSC frequency
of the source host by trapping all TSC accesses so unless TSC scaling
is supported on the destination host and KVM_SET_TSC_KHZ succeeds, it
is unsafe to proceed with migration.

KVM_SET_TSC_KHZ is called from two sites: kvm_arch_init_vcpu() and
kvm_arch_put_registers(). The later (intentionally) doesn't propagate
errors allowing migrations to succeed even when TSC scaling is not
supported on the destination. This doesn't suit 're-enlightenment'
use-case as we have to guarantee that TSC frequency stays constant.

Require 'tsc-frequency=' command line option to be specified for successful
migration when re-enlightenment was enabled by the guest.

Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
Message-Id: <20210319123801.1111090-1-vkuznets@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
docs/hyperv.txt
target/i386/kvm/hyperv-proto.h
target/i386/machine.c