diff options
author | Gonglei <arei.gonglei@huawei.com> | 2017-09-11 23:20:27 +0800 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2017-09-19 16:20:49 +0200 |
commit | 6c69dfb67e84747cf071958594d939e845dfcc0c (patch) | |
tree | 97b7f03024f43bce6ac98056a344d1446e70da2f /target/i386/kvm.c | |
parent | 05cb8ed5467ff0f154f9356fa0cdcf7fca4b17f6 (diff) |
i386/cpu/hyperv: support over 64 vcpus for windows guests
Starting with Windows Server 2012 and Windows 8, if
CPUID.40000005.EAX contains a value of -1, Windows assumes specific
limit to the number of VPs. In this case, Windows Server 2012
guest VMs may use more than 64 VPs, up to the maximum supported
number of processors applicable to the specific Windows
version being used.
https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/reference/tlfs
For compatibility, Let's introduce a new property for X86CPU,
named "x-hv-max-vps" as Eduardo's suggestion, and set it
to 0x40 before machine 2.10.
(The "x-" prefix indicates that the property is not supposed to
be a stable user interface.)
Signed-off-by: Gonglei <arei.gonglei@huawei.com>
Message-Id: <1505143227-14324-1-git-send-email-arei.gonglei@huawei.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'target/i386/kvm.c')
-rw-r--r-- | target/i386/kvm.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/target/i386/kvm.c b/target/i386/kvm.c index 739334a5a6..ee4e91fa64 100644 --- a/target/i386/kvm.c +++ b/target/i386/kvm.c @@ -786,7 +786,8 @@ int kvm_arch_init_vcpu(CPUState *cs) c = &cpuid_data.entries[cpuid_i++]; c->function = HYPERV_CPUID_IMPLEMENT_LIMITS; - c->eax = 0x40; + + c->eax = cpu->hv_max_vps; c->ebx = 0x40; kvm_base = KVM_CPUID_SIGNATURE_NEXT; |