In order to guarantee compatibility on migration, QEMU should have complete control over the features it announces to the guest via CPUID.
However, a number of Hyper-V-related features happen to depend on the support in the underlying KVM, with no regard to QEMU configuration. Make QEMU regain control over what Hyper-V features it announces to the guest. Note #1: the patches are also being proposed[*] for stable-2.11, even though one of them introduces a new cpu property. This is done to minimize the number of published QEMU releases where the behavior of the features is unpredictable, with potentially fatal consequences for the guest. Note #2: there are other problems in the surrounding code, like ugly error reporting or inconsistent population of MSRs. I think this can be put off to post-2.12. [*] for the stable branch the second patch will have error returns replaced with warnings; I'll post a separate series. v2 -> v3: - include the fix for 'hv-time' missed previously v1 -> v2: - indicate what flag requested the feature that can't be enabled in the error message - fix a typo in the error message for VP_RUNTIME Roman Kagan (2): i386/hyperv: add hv-frequencies cpu property i386/hyperv: error out if features requested but unsupported target/i386/cpu.h | 1 + target/i386/cpu.c | 1 + target/i386/kvm.c | 56 ++++++++++++++++++++++++++++++++++++++++++------------- 3 files changed, 45 insertions(+), 13 deletions(-) -- 2.14.3