• E
    target-i386: check/enforce: Fix CPUID leaf numbers on error messages · 8b4beddc
    Eduardo Habkost 提交于
    The -cpu check/enforce warnings are printing incorrect information about the
    missing flags. There are no feature flags on CPUID leaves 0 and 0x80000000, but
    there were references to 0 and 0x80000000 in the table at
    kvm_check_features_against_host().
    
    This changes the model_features_t struct to contain the register number as
    well, so the error messages print the correct CPUID leaf+register information,
    instead of wrong CPUID leaf numbers.
    
    This also changes the format of the error messages, so they follow the
    "CPUID.<leaf>.<register>.<name> [bit <offset>]" convention used in Intel
    documentation. Example output:
    
        $ qemu-system-x86_64 -machine pc-1.0,accel=kvm -cpu Opteron_G4,+ia64,enforce
        warning: host doesn't support requested feature: CPUID.01H:EDX.ia64 [bit 30]
        warning: host doesn't support requested feature: CPUID.01H:ECX.xsave [bit 26]
        warning: host doesn't support requested feature: CPUID.01H:ECX.avx [bit 28]
        warning: host doesn't support requested feature: CPUID.80000001H:ECX.abm [bit 5]
        warning: host doesn't support requested feature: CPUID.80000001H:ECX.sse4a [bit 6]
        warning: host doesn't support requested feature: CPUID.80000001H:ECX.misalignsse [bit 7]
        warning: host doesn't support requested feature: CPUID.80000001H:ECX.3dnowprefetch [bit 8]
        warning: host doesn't support requested feature: CPUID.80000001H:ECX.xop [bit 11]
        warning: host doesn't support requested feature: CPUID.80000001H:ECX.fma4 [bit 16]
        Unable to find x86 CPU definition
        $
    Signed-off-by: NEduardo Habkost <ehabkost@redhat.com>
    Reviewed-by: NGleb Natapov <gleb@redhat.com>
    Signed-off-by: NAndreas Färber <afaerber@suse.de>
    8b4beddc
cpu.c 75.0 KB