• E
    target-i386: Set AMD alias bits after filtering CPUID data · 9997cf7b
    Eduardo Habkost 提交于
    QEMU complains about -cpu host on an AMD machine:
      warning: host doesn't support requested feature: CPUID.80000001H:EDX [bit 0]
    For bits 0,1,3,4,5,6,7,8,9,12,13,14,15,16,17,23,24.
    
    KVM_GET_SUPPORTED_CPUID and and x86_cpu_get_migratable_flags()
    don't handle the AMD CPUID aliases bits, making
    x86_cpu_filter_features() print warnings and clear those CPUID
    bits incorrectly.
    
    To avoid hacking x86_cpu_get_migratable_flags() to handle
    CPUID_EXT2_AMD_ALIASES (just like the existing hack inside
    kvm_arch_get_supported_cpuid()), simply move the
    CPUID_EXT2_AMD_ALIASES code in x86_cpu_realizefn() after the
    x86_cpu_filter_features() call.
    
    This will probably make the CPUID_EXT2_AMD_ALIASES hack in
    kvm_arch_get_supported_cpuid() unnecessary, too. The hack will be
    removed in a follow-up patch after v2.6.0.
    Reported-by: NRadim Krčmář <rkrcmar@redhat.com>
    Tested-by: NRadim Krčmář <rkrcmar@redhat.com>
    Signed-off-by: NEduardo Habkost <ehabkost@redhat.com>
    9997cf7b
cpu.c 108.7 KB