cputest: Make a crippled version of Core-i7-2600

xsaveopt is artificially removed from the host to test disabled feature
which is only included in QEMU's version of the CPU model.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
This commit is contained in:
Jiri Denemark 2017-10-04 00:55:46 +02:00
parent 911643ce45
commit 91d69cb03e
8 changed files with 724 additions and 0 deletions

View File

@ -1126,6 +1126,7 @@ mymain(void)
DO_TEST_CPUID(VIR_ARCH_X86_64, "Core-i5-4670T", JSON_HOST);
DO_TEST_CPUID(VIR_ARCH_X86_64, "Core-i5-6600", JSON_HOST);
DO_TEST_CPUID(VIR_ARCH_X86_64, "Core-i7-2600", JSON_HOST);
DO_TEST_CPUID(VIR_ARCH_X86_64, "Core-i7-2600-xsaveopt", JSON_MODELS);
DO_TEST_CPUID(VIR_ARCH_X86_64, "Core-i7-3520M", JSON_NONE);
DO_TEST_CPUID(VIR_ARCH_X86_64, "Core-i7-3740QM", JSON_HOST);
DO_TEST_CPUID(VIR_ARCH_X86_64, "Core-i7-3770", JSON_HOST);

View File

@ -0,0 +1,6 @@
<!-- Features disabled by QEMU -->
<cpudata arch='x86'>
<cpuid eax_in='0x00000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x0800c1fc' edx='0xb0600000'/>
<cpuid eax_in='0x0000000d' ecx_in='0x01' eax='0x00000001' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
<cpuid eax_in='0x80000007' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000100'/>
</cpudata>

View File

@ -0,0 +1,8 @@
<!-- Features enabled by QEMU -->
<cpudata arch='x86'>
<cpuid eax_in='0x00000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x97ba2203' edx='0x0f8bfbff'/>
<cpuid eax_in='0x00000006' ecx_in='0x00' eax='0x00000004' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
<cpuid eax_in='0x00000007' ecx_in='0x00' eax='0x00000000' ebx='0x00000002' ecx='0x00000000' edx='0x00000000'/>
<cpuid eax_in='0x40000001' ecx_in='0x00' eax='0x010000fa' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
<cpuid eax_in='0x80000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000001' edx='0x28100800'/>
</cpudata>

View File

@ -0,0 +1,25 @@
<cpu mode='custom' match='exact'>
<model fallback='forbid'>SandyBridge</model>
<vendor>Intel</vendor>
<feature policy='require' name='vme'/>
<feature policy='require' name='ds'/>
<feature policy='require' name='acpi'/>
<feature policy='require' name='ss'/>
<feature policy='require' name='ht'/>
<feature policy='require' name='tm'/>
<feature policy='require' name='pbe'/>
<feature policy='require' name='dtes64'/>
<feature policy='require' name='monitor'/>
<feature policy='require' name='ds_cpl'/>
<feature policy='require' name='vmx'/>
<feature policy='require' name='smx'/>
<feature policy='require' name='est'/>
<feature policy='require' name='tm2'/>
<feature policy='require' name='xtpr'/>
<feature policy='require' name='pdcm'/>
<feature policy='require' name='pcid'/>
<feature policy='require' name='osxsave'/>
<feature policy='require' name='arat'/>
<feature policy='require' name='invtsc'/>
<feature policy='disable' name='xsaveopt'/>
</cpu>

View File

@ -0,0 +1,25 @@
<cpu>
<arch>x86_64</arch>
<model>SandyBridge</model>
<vendor>Intel</vendor>
<feature name='vme'/>
<feature name='ds'/>
<feature name='acpi'/>
<feature name='ss'/>
<feature name='ht'/>
<feature name='tm'/>
<feature name='pbe'/>
<feature name='dtes64'/>
<feature name='monitor'/>
<feature name='ds_cpl'/>
<feature name='vmx'/>
<feature name='smx'/>
<feature name='est'/>
<feature name='tm2'/>
<feature name='xtpr'/>
<feature name='pdcm'/>
<feature name='pcid'/>
<feature name='osxsave'/>
<feature name='arat'/>
<feature name='invtsc'/>
</cpu>

View File

@ -0,0 +1,11 @@
<cpu mode='custom' match='exact'>
<model fallback='forbid'>SandyBridge</model>
<vendor>Intel</vendor>
<feature policy='require' name='vme'/>
<feature policy='require' name='ss'/>
<feature policy='require' name='pcid'/>
<feature policy='require' name='hypervisor'/>
<feature policy='require' name='arat'/>
<feature policy='require' name='tsc_adjust'/>
<feature policy='disable' name='xsaveopt'/>
</cpu>

View File

@ -0,0 +1,615 @@
{
"return": {
"model": {
"name": "base",
"props": {
"pfthreshold": false,
"pku": false,
"rtm": false,
"tsc_adjust": true,
"tsc-deadline": true,
"xstore-en": false,
"cpuid-0xb": true,
"abm": false,
"ia64": false,
"kvm-mmu": false,
"xsaveopt": false,
"hv-spinlocks": -1,
"tce": false,
"realized": false,
"kvm_steal_time": true,
"smep": false,
"fpu": true,
"xcrypt": false,
"sse4_2": true,
"clflush": true,
"sse4_1": true,
"flushbyasid": false,
"kvm-steal-time": true,
"lm": true,
"tsc": true,
"adx": false,
"fxsr": true,
"sha-ni": false,
"decodeassists": false,
"hv-relaxed": false,
"pclmuldq": true,
"xgetbv1": false,
"xstore": false,
"vmcb_clean": false,
"tsc-adjust": true,
"vme": true,
"vendor": "GenuineIntel",
"arat": true,
"ffxsr": false,
"de": true,
"aes": true,
"pse": true,
"ds-cpl": false,
"fxsr_opt": false,
"tbm": false,
"sse": true,
"phe-en": false,
"f16c": false,
"ds": false,
"mpx": false,
"vmware-cpuid-freq": true,
"avx512f": false,
"avx2": false,
"level": 13,
"pbe": false,
"cx16": true,
"ds_cpl": false,
"movbe": false,
"perfctr-nb": false,
"nrip_save": false,
"kvm_mmu": false,
"ospke": false,
"pmu": false,
"avx512ifma": false,
"stepping": 7,
"sep": true,
"sse4a": false,
"avx512dq": false,
"core-id": -1,
"i64": true,
"avx512-4vnniw": false,
"xsave": true,
"pmm": false,
"hle": false,
"nodeid_msr": false,
"hv-crash": false,
"est": false,
"osxsave": false,
"xop": false,
"smx": false,
"tsc-scale": false,
"monitor": false,
"avx512er": false,
"apic": true,
"sse4.1": true,
"sse4.2": true,
"hv-vapic": false,
"pause-filter": false,
"lahf-lm": true,
"kvm-nopiodelay": true,
"cmp_legacy": false,
"acpi": false,
"fma4": false,
"mmx": true,
"svm_lock": false,
"pcommit": false,
"mtrr": true,
"clwb": false,
"dca": false,
"pdcm": false,
"xcrypt-en": false,
"3dnow": false,
"invtsc": false,
"tm2": false,
"hv-time": false,
"hypervisor": true,
"kvmclock-stable-bit": true,
"xlevel": 2147483656,
"lahf_lm": true,
"enforce": false,
"pcid": true,
"sse4-1": true,
"lbrv": false,
"avx512-vpopcntdq": false,
"avx512-4fmaps": false,
"fill-mtrr-mask": true,
"pause_filter": false,
"svm-lock": false,
"popcnt": true,
"nrip-save": false,
"avx512vl": false,
"x2apic": true,
"kvmclock": true,
"smap": false,
"pdpe1gb": false,
"family": 6,
"min-level": 13,
"xlevel2": 0,
"dtes64": false,
"xd": true,
"kvm_pv_eoi": true,
"ace2": false,
"kvm_pv_unhalt": true,
"xtpr": false,
"perfctr_nb": false,
"avx512bw": false,
"l3-cache": true,
"nx": true,
"lwp": false,
"msr": true,
"syscall": true,
"tm": false,
"perfctr-core": false,
"memory": "/machine/unattached/system[0]",
"pge": true,
"pn": false,
"fma": false,
"nodeid-msr": false,
"xsavec": false,
"socket-id": -1,
"thread-id": -1,
"cx8": true,
"mce": true,
"avx512cd": false,
"cr8legacy": false,
"mca": true,
"avx512pf": false,
"pni": true,
"hv-vendor-id": "",
"rdseed": false,
"osvw": false,
"fsgsbase": false,
"model-id": " Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz",
"cmp-legacy": false,
"kvm-pv-unhalt": true,
"rdtscp": true,
"mmxext": false,
"host-phys-bits": true,
"cid": false,
"vmx": false,
"ssse3": true,
"extapic": false,
"pse36": true,
"min-xlevel": 2147483656,
"ibs": false,
"la57": false,
"avx": true,
"kvm-no-smi-migration": false,
"ace2-en": false,
"umip": false,
"invpcid": false,
"bmi1": false,
"bmi2": false,
"vmcb-clean": false,
"erms": false,
"cmov": true,
"check": true,
"perfctr_core": false,
"misalignsse": false,
"clflushopt": false,
"pat": true,
"sse4-2": true,
"3dnowprefetch": false,
"rdpid": false,
"full-cpuid-auto-level": true,
"pae": true,
"wdt": false,
"tsc_scale": false,
"skinit": false,
"fxsr-opt": false,
"kvm_nopiodelay": true,
"phys-bits": 0,
"kvm": true,
"pmm-en": false,
"phe": false,
"3dnowext": false,
"lmce": true,
"ht": false,
"tsc-frequency": 0,
"kvm-pv-eoi": true,
"npt": false,
"apic-id": 4294967295,
"kvm_asyncpf": true,
"min-xlevel2": 0,
"pclmulqdq": true,
"svm": false,
"sse3": true,
"sse2": true,
"ss": true,
"topoext": false,
"rdrand": false,
"avx512vbmi": false,
"kvm-asyncpf": true,
"xsaves": false,
"model": 42
}
}
},
"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",
"pdpe1gb",
"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",
"f16c",
"rdrand",
"fsgsbase",
"bmi1",
"hle",
"avx2",
"smep",
"bmi2",
"erms",
"invpcid",
"rtm",
"mpx",
"rdseed",
"adx",
"smap",
"abm",
"3dnowprefetch",
"xsavec",
"xgetbv1",
"mpx",
"mpx",
"xsaveopt"
],
"migration-safe": true,
"static": false,
"name": "Skylake-Client"
},
{
"typename": "SandyBridge-x86_64-cpu",
"unavailable-features": [
"xsaveopt"
],
"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",
"f16c",
"pdpe1gb",
"abm",
"sse4a",
"misalignsse",
"3dnowprefetch",
"xop",
"fma4",
"tbm"
],
"migration-safe": true,
"static": false,
"name": "Opteron_G5"
},
{
"typename": "Opteron_G4-x86_64-cpu",
"unavailable-features": [
"pdpe1gb",
"abm",
"sse4a",
"misalignsse",
"3dnowprefetch",
"xop",
"fma4"
],
"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": [
"f16c",
"rdrand",
"fsgsbase",
"smep",
"erms",
"xsaveopt"
],
"migration-safe": true,
"static": false,
"name": "IvyBridge"
},
{
"typename": "Haswell-x86_64-cpu",
"unavailable-features": [
"fma",
"movbe",
"f16c",
"rdrand",
"fsgsbase",
"bmi1",
"hle",
"avx2",
"smep",
"bmi2",
"erms",
"invpcid",
"rtm",
"abm",
"xsaveopt"
],
"migration-safe": true,
"static": false,
"name": "Haswell"
},
{
"typename": "Haswell-noTSX-x86_64-cpu",
"unavailable-features": [
"fma",
"movbe",
"f16c",
"rdrand",
"fsgsbase",
"bmi1",
"avx2",
"smep",
"bmi2",
"erms",
"invpcid",
"abm",
"xsaveopt"
],
"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",
"f16c",
"rdrand",
"fsgsbase",
"bmi1",
"hle",
"avx2",
"smep",
"bmi2",
"erms",
"invpcid",
"rtm",
"rdseed",
"adx",
"smap",
"abm",
"3dnowprefetch",
"xsaveopt"
],
"migration-safe": true,
"static": false,
"name": "Broadwell"
},
{
"typename": "Broadwell-noTSX-x86_64-cpu",
"unavailable-features": [
"fma",
"movbe",
"f16c",
"rdrand",
"fsgsbase",
"bmi1",
"avx2",
"smep",
"bmi2",
"erms",
"invpcid",
"rdseed",
"adx",
"smap",
"abm",
"3dnowprefetch",
"xsaveopt"
],
"migration-safe": true,
"static": false,
"name": "Broadwell-noTSX"
},
{
"typename": "486-x86_64-cpu",
"unavailable-features": [],
"migration-safe": true,
"static": false,
"name": "486"
}
],
"id": "definitions"
}

View File

@ -0,0 +1,33 @@
<!-- Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz -->
<cpudata arch='x86'>
<cpuid eax_in='0x00000000' ecx_in='0x00' eax='0x0000000d' ebx='0x756e6547' ecx='0x6c65746e' edx='0x49656e69'/>
<cpuid eax_in='0x00000001' ecx_in='0x00' eax='0x000206a7' ebx='0x01100800' ecx='0x1fbae3ff' edx='0xbfebfbff'/>
<cpuid eax_in='0x00000002' ecx_in='0x00' eax='0x76035a01' ebx='0x00f0b2ff' ecx='0x00000000' edx='0x00ca0000'/>
<cpuid eax_in='0x00000003' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
<cpuid eax_in='0x00000004' ecx_in='0x00' eax='0x1c004121' ebx='0x01c0003f' ecx='0x0000003f' edx='0x00000000'/>
<cpuid eax_in='0x00000004' ecx_in='0x01' eax='0x1c004122' ebx='0x01c0003f' ecx='0x0000003f' edx='0x00000000'/>
<cpuid eax_in='0x00000004' ecx_in='0x02' eax='0x1c004143' ebx='0x01c0003f' ecx='0x000001ff' edx='0x00000000'/>
<cpuid eax_in='0x00000004' ecx_in='0x03' eax='0x1c03c163' ebx='0x03c0003f' ecx='0x00001fff' edx='0x00000006'/>
<cpuid eax_in='0x00000005' ecx_in='0x00' eax='0x00000040' ebx='0x00000040' ecx='0x00000003' edx='0x00001120'/>
<cpuid eax_in='0x00000006' ecx_in='0x00' eax='0x00000077' ebx='0x00000002' ecx='0x00000009' edx='0x00000000'/>
<cpuid eax_in='0x00000007' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
<cpuid eax_in='0x00000008' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
<cpuid eax_in='0x00000009' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
<cpuid eax_in='0x0000000a' ecx_in='0x00' eax='0x07300403' ebx='0x00000000' ecx='0x00000000' edx='0x00000603'/>
<cpuid eax_in='0x0000000b' ecx_in='0x00' eax='0x00000001' ebx='0x00000002' ecx='0x00000100' edx='0x00000001'/>
<cpuid eax_in='0x0000000b' ecx_in='0x01' eax='0x00000004' ebx='0x00000008' ecx='0x00000201' edx='0x00000001'/>
<cpuid eax_in='0x0000000c' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
<cpuid eax_in='0x0000000d' ecx_in='0x00' eax='0x00000007' ebx='0x00000340' ecx='0x00000340' edx='0x00000000'/>
<cpuid eax_in='0x0000000d' ecx_in='0x02' eax='0x00000100' ebx='0x00000240' ecx='0x00000000' edx='0x00000000'/>
<cpuid eax_in='0x80000000' ecx_in='0x00' eax='0x80000008' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
<cpuid eax_in='0x80000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000001' edx='0x28100800'/>
<cpuid eax_in='0x80000002' ecx_in='0x00' eax='0x20202020' ebx='0x20202020' ecx='0x65746e49' edx='0x2952286c'/>
<cpuid eax_in='0x80000003' ecx_in='0x00' eax='0x726f4320' ebx='0x4d542865' ecx='0x37692029' edx='0x3036322d'/>
<cpuid eax_in='0x80000004' ecx_in='0x00' eax='0x50432030' ebx='0x20402055' ecx='0x30342e33' edx='0x007a4847'/>
<cpuid eax_in='0x80000005' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
<cpuid eax_in='0x80000006' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x01006040' edx='0x00000000'/>
<cpuid eax_in='0x80000007' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000100'/>
<cpuid eax_in='0x80000008' ecx_in='0x00' eax='0x00003024' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
<cpuid eax_in='0x80860000' ecx_in='0x00' eax='0x00000007' ebx='0x00000340' ecx='0x00000340' edx='0x00000000'/>
<cpuid eax_in='0xc0000000' ecx_in='0x00' eax='0x00000007' ebx='0x00000340' ecx='0x00000340' edx='0x00000000'/>
</cpudata>