Message ID | CAG4AFWajxKx_VWMLGMzto19Tfk6XwtGpLa9H=bRGbug+3O6mBA@mail.gmail.com |
---|---|
State | New |
Headers | show |
Il 04/06/2014 03:10, Jidong Xiao ha scritto: > diff --git a/qemu-2.0.0/target-i386/kvm.c.orig b/qemu-2.0.0/target-i386/kvm.c > index 4389959..b8b282d 100644 > --- a/qemu-2.0.0/target-i386/kvm.c.orig > +++ b/qemu-2.0.0/target-i386/kvm.c > @@ -530,7 +530,7 @@ int kvm_arch_init_vcpu(CPUState *cs) > memcpy(signature, "KVMKVMKVM\0\0\0", 12); > c = &cpuid_data.entries[cpuid_i++]; > c->function = KVM_CPUID_SIGNATURE | kvm_base; > - c->eax = 0; > + c->eax = KVM_CPUID_FEATURES; > c->ebx = signature[0]; > c->ecx = signature[1]; > c->edx = signature[2]; This should actually be "KVM_CPUID_FEATURES | kvm_base", in case Hyper-V leaves are available too. But it is a good catch! Paolo
diff --git a/qemu-2.0.0/target-i386/kvm.c.orig b/qemu-2.0.0/target-i386/kvm.c index 4389959..b8b282d 100644 --- a/qemu-2.0.0/target-i386/kvm.c.orig +++ b/qemu-2.0.0/target-i386/kvm.c @@ -530,7 +530,7 @@ int kvm_arch_init_vcpu(CPUState *cs) memcpy(signature, "KVMKVMKVM\0\0\0", 12); c = &cpuid_data.entries[cpuid_i++]; c->function = KVM_CPUID_SIGNATURE | kvm_base; - c->eax = 0; + c->eax = KVM_CPUID_FEATURES; c->ebx = signature[0]; c->ecx = signature[1]; c->edx = signature[2];
Hi, Since Linux kernel 3.5, KVM has set eax to KVM_CPUID_FEATURES, for leaf 0x40000000, see this: https://github.com/torvalds/linux/commit/57c22e5f35aa4b9b2fe11f73f3e62bbf9ef36190 But qemu still tries to set it to 0. It would be better to make qemu and kvm consistent. This patch just fixes this issue. Signed-off-by: Jidong Xiao <jidong.xiao@gmail.com> ---