On 20/02/2017 12:54, Gonglei (Arei) wrote: >> >> On 20/02/2017 10:19, Gonglei (Arei) wrote: >>> Hi Paolo, >>> >>>> >>>> >>>> On 16/02/2017 02:31, Gonglei (Arei) wrote: >>>>> And the below patch works for me, I can support max 255 vcpus for >> WS2012 >>>>> with hyper-v enlightenments. >>>>> >>>>> diff --git a/target/i386/kvm.c b/target/i386/kvm.c >>>>> index 27fd050..efe3cbc 100644 >>>>> --- a/target/i386/kvm.c >>>>> +++ b/target/i386/kvm.c >>>>> @@ -772,7 +772,7 @@ int kvm_arch_init_vcpu(CPUState *cs) >>>>> >>>>> c = &cpuid_data.entries[cpuid_i++]; >>>>> c->function = HYPERV_CPUID_IMPLEMENT_LIMITS; >>>>> - c->eax = 0x40; >>>>> + c->eax = -1; >>>>> c->ebx = 0x40; >>>>> >>>>> kvm_base = KVM_CPUID_SIGNATURE_NEXT; >>>> >>>> This needs to depend on the machine type, but apart from that I think >>> >>> I don't know why. Because the negative effects for this change don't exist >>> on current QEMU IIUC, and we don't have compatible problems for live >> migration. >> >> CPUID should never change with the same machine type and command line. >> > OK, then how do we add compat code for the CPUID change? It's not a visible property. You can add a new property, something like hv-cpuid-limits-eax. Paolo