cputest: Add query-cpu-definitions reply for Xeon-E7-4830

This CPU was incorrectly detected as SandyBridge before because the
number of additional <feature> elements was the same for both
SandyBridge and Westmere CPU models, but SandyBridge is newer (the CPU
signature does not help here because it doesn't match any signature
defined in cpu_map.xml). But since QEMU's version of SandyBridge CPU
model contains xsaveopt which needs to be disabled, Westmere becomes the
best CPU model when translating CPUID data to virCPUDef. Unfortunately,
this doesn't help with translating the data we got from QEMU and the CPU
model is still computed as SandyBridge in this case.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
This commit is contained in:
Jiri Denemark 2017-09-26 22:14:25 +02:00
parent 3479f297b3
commit 8e72c612fe
4 changed files with 428 additions and 5 deletions

View File

@ -1149,7 +1149,7 @@ mymain(void)
DO_TEST_CPUID(VIR_ARCH_X86_64, "Xeon-E5-2630", JSON_HOST); DO_TEST_CPUID(VIR_ARCH_X86_64, "Xeon-E5-2630", JSON_HOST);
DO_TEST_CPUID(VIR_ARCH_X86_64, "Xeon-E5-2650", JSON_HOST); DO_TEST_CPUID(VIR_ARCH_X86_64, "Xeon-E5-2650", JSON_HOST);
DO_TEST_CPUID(VIR_ARCH_X86_64, "Xeon-E7-4820", JSON_HOST); DO_TEST_CPUID(VIR_ARCH_X86_64, "Xeon-E7-4820", JSON_HOST);
DO_TEST_CPUID(VIR_ARCH_X86_64, "Xeon-E7-4830", JSON_HOST); DO_TEST_CPUID(VIR_ARCH_X86_64, "Xeon-E7-4830", JSON_MODELS);
DO_TEST_CPUID(VIR_ARCH_X86_64, "Xeon-E7-8890", JSON_NONE); DO_TEST_CPUID(VIR_ARCH_X86_64, "Xeon-E7-8890", JSON_NONE);
DO_TEST_CPUID(VIR_ARCH_X86_64, "Xeon-Gold-6148", JSON_HOST); DO_TEST_CPUID(VIR_ARCH_X86_64, "Xeon-Gold-6148", JSON_HOST);
DO_TEST_CPUID(VIR_ARCH_X86_64, "Xeon-W3520", JSON_HOST); DO_TEST_CPUID(VIR_ARCH_X86_64, "Xeon-W3520", JSON_HOST);

View File

@ -1,5 +1,5 @@
<cpu mode='custom' match='exact'> <cpu mode='custom' match='exact'>
<model fallback='forbid'>SandyBridge</model> <model fallback='forbid'>Westmere</model>
<vendor>Intel</vendor> <vendor>Intel</vendor>
<feature policy='require' name='vme'/> <feature policy='require' name='vme'/>
<feature policy='require' name='ds'/> <feature policy='require' name='ds'/>
@ -8,6 +8,7 @@
<feature policy='require' name='ht'/> <feature policy='require' name='ht'/>
<feature policy='require' name='tm'/> <feature policy='require' name='tm'/>
<feature policy='require' name='pbe'/> <feature policy='require' name='pbe'/>
<feature policy='require' name='pclmuldq'/>
<feature policy='require' name='dtes64'/> <feature policy='require' name='dtes64'/>
<feature policy='require' name='monitor'/> <feature policy='require' name='monitor'/>
<feature policy='require' name='ds_cpl'/> <feature policy='require' name='ds_cpl'/>
@ -19,10 +20,9 @@
<feature policy='require' name='pdcm'/> <feature policy='require' name='pdcm'/>
<feature policy='require' name='pcid'/> <feature policy='require' name='pcid'/>
<feature policy='require' name='dca'/> <feature policy='require' name='dca'/>
<feature policy='require' name='x2apic'/>
<feature policy='require' name='arat'/> <feature policy='require' name='arat'/>
<feature policy='require' name='pdpe1gb'/> <feature policy='require' name='pdpe1gb'/>
<feature policy='require' name='rdtscp'/>
<feature policy='require' name='invtsc'/> <feature policy='require' name='invtsc'/>
<feature policy='disable' name='tsc-deadline'/>
<feature policy='disable' name='xsave'/>
<feature policy='disable' name='avx'/>
</cpu> </cpu>

View File

@ -10,4 +10,5 @@
<feature policy='require' name='pdpe1gb'/> <feature policy='require' name='pdpe1gb'/>
<feature policy='disable' name='xsave'/> <feature policy='disable' name='xsave'/>
<feature policy='disable' name='avx'/> <feature policy='disable' name='avx'/>
<feature policy='disable' name='xsaveopt'/>
</cpu> </cpu>

View File

@ -233,3 +233,425 @@
}, },
"id": "model-expansion" "id": "model-expansion"
} }
{
"return": [
{
"typename": "max-x86_64-cpu",
"unavailable-features": [],
"migration-safe": false,
"static": false,
"name": "max"
},
{
"typename": "host-x86_64-cpu",
"unavailable-features": [],
"migration-safe": false,
"static": false,
"name": "host"
},
{
"typename": "base-x86_64-cpu",
"unavailable-features": [],
"migration-safe": true,
"static": true,
"name": "base"
},
{
"typename": "qemu64-x86_64-cpu",
"unavailable-features": [],
"migration-safe": true,
"static": false,
"name": "qemu64"
},
{
"typename": "qemu32-x86_64-cpu",
"unavailable-features": [],
"migration-safe": true,
"static": false,
"name": "qemu32"
},
{
"typename": "phenom-x86_64-cpu",
"unavailable-features": [
"mmxext",
"fxsr-opt",
"3dnowext",
"3dnow",
"abm",
"sse4a",
"npt"
],
"migration-safe": true,
"static": false,
"name": "phenom"
},
{
"typename": "pentium3-x86_64-cpu",
"unavailable-features": [],
"migration-safe": true,
"static": false,
"name": "pentium3"
},
{
"typename": "pentium2-x86_64-cpu",
"unavailable-features": [],
"migration-safe": true,
"static": false,
"name": "pentium2"
},
{
"typename": "pentium-x86_64-cpu",
"unavailable-features": [],
"migration-safe": true,
"static": false,
"name": "pentium"
},
{
"typename": "n270-x86_64-cpu",
"unavailable-features": [
"movbe"
],
"migration-safe": true,
"static": false,
"name": "n270"
},
{
"typename": "kvm64-x86_64-cpu",
"unavailable-features": [],
"migration-safe": true,
"static": false,
"name": "kvm64"
},
{
"typename": "kvm32-x86_64-cpu",
"unavailable-features": [],
"migration-safe": true,
"static": false,
"name": "kvm32"
},
{
"typename": "cpu64-rhel6-x86_64-cpu",
"unavailable-features": [
"abm",
"sse4a"
],
"migration-safe": true,
"static": false,
"name": "cpu64-rhel6"
},
{
"typename": "coreduo-x86_64-cpu",
"unavailable-features": [],
"migration-safe": true,
"static": false,
"name": "coreduo"
},
{
"typename": "core2duo-x86_64-cpu",
"unavailable-features": [],
"migration-safe": true,
"static": false,
"name": "core2duo"
},
{
"typename": "athlon-x86_64-cpu",
"unavailable-features": [
"mmxext",
"3dnowext",
"3dnow"
],
"migration-safe": true,
"static": false,
"name": "athlon"
},
{
"typename": "Westmere-x86_64-cpu",
"unavailable-features": [],
"migration-safe": true,
"static": false,
"name": "Westmere"
},
{
"typename": "Skylake-Client-x86_64-cpu",
"unavailable-features": [
"fma",
"movbe",
"xsave",
"avx",
"f16c",
"rdrand",
"fsgsbase",
"bmi1",
"hle",
"avx2",
"smep",
"bmi2",
"erms",
"invpcid",
"rtm",
"mpx",
"rdseed",
"adx",
"smap",
"abm",
"3dnowprefetch",
"xsaveopt",
"xsavec",
"xgetbv1",
"xsave",
"xsave",
"avx",
"mpx",
"mpx"
],
"migration-safe": true,
"static": false,
"name": "Skylake-Client"
},
{
"typename": "SandyBridge-x86_64-cpu",
"unavailable-features": [
"xsave",
"avx",
"xsaveopt",
"xsave",
"xsave",
"avx"
],
"migration-safe": true,
"static": false,
"name": "SandyBridge"
},
{
"typename": "Penryn-x86_64-cpu",
"unavailable-features": [],
"migration-safe": true,
"static": false,
"name": "Penryn"
},
{
"typename": "Opteron_G5-x86_64-cpu",
"unavailable-features": [
"fma",
"xsave",
"avx",
"f16c",
"abm",
"sse4a",
"misalignsse",
"3dnowprefetch",
"xop",
"fma4",
"tbm",
"xsave",
"xsave",
"avx"
],
"migration-safe": true,
"static": false,
"name": "Opteron_G5"
},
{
"typename": "Opteron_G4-x86_64-cpu",
"unavailable-features": [
"xsave",
"avx",
"abm",
"sse4a",
"misalignsse",
"3dnowprefetch",
"xop",
"fma4",
"xsave",
"xsave",
"avx"
],
"migration-safe": true,
"static": false,
"name": "Opteron_G4"
},
{
"typename": "Opteron_G3-x86_64-cpu",
"unavailable-features": [
"abm",
"sse4a",
"misalignsse"
],
"migration-safe": true,
"static": false,
"name": "Opteron_G3"
},
{
"typename": "Opteron_G2-x86_64-cpu",
"unavailable-features": [],
"migration-safe": true,
"static": false,
"name": "Opteron_G2"
},
{
"typename": "Opteron_G1-x86_64-cpu",
"unavailable-features": [],
"migration-safe": true,
"static": false,
"name": "Opteron_G1"
},
{
"typename": "Nehalem-x86_64-cpu",
"unavailable-features": [],
"migration-safe": true,
"static": false,
"name": "Nehalem"
},
{
"typename": "IvyBridge-x86_64-cpu",
"unavailable-features": [
"xsave",
"avx",
"f16c",
"rdrand",
"fsgsbase",
"smep",
"erms",
"xsaveopt",
"xsave",
"xsave",
"avx"
],
"migration-safe": true,
"static": false,
"name": "IvyBridge"
},
{
"typename": "Haswell-x86_64-cpu",
"unavailable-features": [
"fma",
"movbe",
"xsave",
"avx",
"f16c",
"rdrand",
"fsgsbase",
"bmi1",
"hle",
"avx2",
"smep",
"bmi2",
"erms",
"invpcid",
"rtm",
"abm",
"xsaveopt",
"xsave",
"xsave",
"avx"
],
"migration-safe": true,
"static": false,
"name": "Haswell"
},
{
"typename": "Haswell-noTSX-x86_64-cpu",
"unavailable-features": [
"fma",
"movbe",
"xsave",
"avx",
"f16c",
"rdrand",
"fsgsbase",
"bmi1",
"avx2",
"smep",
"bmi2",
"erms",
"invpcid",
"abm",
"xsaveopt",
"xsave",
"xsave",
"avx"
],
"migration-safe": true,
"static": false,
"name": "Haswell-noTSX"
},
{
"typename": "Conroe-x86_64-cpu",
"unavailable-features": [],
"migration-safe": true,
"static": false,
"name": "Conroe"
},
{
"typename": "Broadwell-x86_64-cpu",
"unavailable-features": [
"fma",
"movbe",
"xsave",
"avx",
"f16c",
"rdrand",
"fsgsbase",
"bmi1",
"hle",
"avx2",
"smep",
"bmi2",
"erms",
"invpcid",
"rtm",
"rdseed",
"adx",
"smap",
"abm",
"3dnowprefetch",
"xsaveopt",
"xsave",
"xsave",
"avx"
],
"migration-safe": true,
"static": false,
"name": "Broadwell"
},
{
"typename": "Broadwell-noTSX-x86_64-cpu",
"unavailable-features": [
"fma",
"movbe",
"xsave",
"avx",
"f16c",
"rdrand",
"fsgsbase",
"bmi1",
"avx2",
"smep",
"bmi2",
"erms",
"invpcid",
"rdseed",
"adx",
"smap",
"abm",
"3dnowprefetch",
"xsaveopt",
"xsave",
"xsave",
"avx"
],
"migration-safe": true,
"static": false,
"name": "Broadwell-noTSX"
},
{
"typename": "486-x86_64-cpu",
"unavailable-features": [],
"migration-safe": true,
"static": false,
"name": "486"
}
],
"id": "definitions"
}