libvirt/src/cpu_map/x86_features.xml
Jiri Denemark 511df17aec cpu_map: Add support for arch-capabilities feature
The feature was added to QEMU in 3.1.0 and it is currently blocking
migration, which is expected to change in the future. Luckily 3.1.0 is
new enough to give us migratability hints on each feature via
query-cpu-model-expension, which means we don't need to use the
"migratable" attribute on the CPU map XML.

The kernel calls this feature arch_capabilities and RHEL/CentOS 7.* use
arch-facilities. Apparently some CPU test files were gathered with the
RHEL version of QEMU. Let's update the test files to avoid possible
confusion about the correct naming.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-01-10 16:39:57 +01:00

480 lines
14 KiB
XML

<cpus>
<!-- standard features, EDX -->
<feature name='fpu'>
<cpuid eax_in='0x01' edx='0x00000001'/>
</feature>
<feature name='vme'>
<cpuid eax_in='0x01' edx='0x00000002'/>
</feature>
<feature name='de'>
<cpuid eax_in='0x01' edx='0x00000004'/>
</feature>
<feature name='pse'>
<cpuid eax_in='0x01' edx='0x00000008'/>
</feature>
<feature name='tsc'>
<cpuid eax_in='0x01' edx='0x00000010'/>
</feature>
<feature name='msr'>
<cpuid eax_in='0x01' edx='0x00000020'/>
</feature>
<feature name='pae'>
<cpuid eax_in='0x01' edx='0x00000040'/>
</feature>
<feature name='mce'>
<cpuid eax_in='0x01' edx='0x00000080'/>
</feature>
<feature name='cx8'>
<cpuid eax_in='0x01' edx='0x00000100'/>
</feature>
<feature name='apic'>
<cpuid eax_in='0x01' edx='0x00000200'/>
</feature>
<feature name='sep'>
<cpuid eax_in='0x01' edx='0x00000800'/>
</feature>
<feature name='mtrr'>
<cpuid eax_in='0x01' edx='0x00001000'/>
</feature>
<feature name='pge'>
<cpuid eax_in='0x01' edx='0x00002000'/>
</feature>
<feature name='mca'>
<cpuid eax_in='0x01' edx='0x00004000'/>
</feature>
<feature name='cmov'>
<cpuid eax_in='0x01' edx='0x00008000'/>
</feature>
<feature name='pat'>
<cpuid eax_in='0x01' edx='0x00010000'/>
</feature>
<feature name='pse36'>
<cpuid eax_in='0x01' edx='0x00020000'/>
</feature>
<feature name='pn'>
<cpuid eax_in='0x01' edx='0x00040000'/>
</feature>
<feature name='clflush'>
<cpuid eax_in='0x01' edx='0x00080000'/>
</feature>
<feature name='ds'>
<cpuid eax_in='0x01' edx='0x00200000'/>
</feature>
<feature name='acpi'>
<cpuid eax_in='0x01' edx='0x00400000'/>
</feature>
<feature name='mmx'>
<cpuid eax_in='0x01' edx='0x00800000'/>
</feature>
<feature name='fxsr'>
<cpuid eax_in='0x01' edx='0x01000000'/>
</feature>
<feature name='sse'>
<cpuid eax_in='0x01' edx='0x02000000'/>
</feature>
<feature name='sse2'>
<cpuid eax_in='0x01' edx='0x04000000'/>
</feature>
<feature name='ss'>
<cpuid eax_in='0x01' edx='0x08000000'/>
</feature>
<feature name='ht'>
<cpuid eax_in='0x01' edx='0x10000000'/>
</feature>
<feature name='tm'>
<cpuid eax_in='0x01' edx='0x20000000'/>
</feature>
<feature name='ia64'>
<cpuid eax_in='0x01' edx='0x40000000'/>
</feature>
<feature name='pbe'>
<cpuid eax_in='0x01' edx='0x80000000'/>
</feature>
<!-- standard features, ECX -->
<feature name='pni'> <!-- sse3 -->
<cpuid eax_in='0x01' ecx='0x00000001'/>
</feature>
<feature name='pclmuldq'> <!-- pclmulqdq -->
<cpuid eax_in='0x01' ecx='0x00000002'/>
</feature>
<feature name='dtes64'>
<cpuid eax_in='0x01' ecx='0x00000004'/>
</feature>
<feature name='monitor'>
<cpuid eax_in='0x01' ecx='0x00000008'/>
</feature>
<feature name='ds_cpl'> <!-- ds-cpl -->
<cpuid eax_in='0x01' ecx='0x00000010'/>
</feature>
<feature name='vmx'>
<cpuid eax_in='0x01' ecx='0x00000020'/>
</feature>
<feature name='smx'>
<cpuid eax_in='0x01' ecx='0x00000040'/>
</feature>
<feature name='est'>
<cpuid eax_in='0x01' ecx='0x00000080'/>
</feature>
<feature name='tm2'>
<cpuid eax_in='0x01' ecx='0x00000100'/>
</feature>
<feature name='ssse3'>
<cpuid eax_in='0x01' ecx='0x00000200'/>
</feature>
<feature name='cid'>
<cpuid eax_in='0x01' ecx='0x00000400'/>
</feature>
<feature name='fma'>
<cpuid eax_in='0x01' ecx='0x00001000'/>
</feature>
<feature name='cx16'>
<cpuid eax_in='0x01' ecx='0x00002000'/>
</feature>
<feature name='xtpr'>
<cpuid eax_in='0x01' ecx='0x00004000'/>
</feature>
<feature name='pdcm'>
<cpuid eax_in='0x01' ecx='0x00008000'/>
</feature>
<feature name='pcid'>
<cpuid eax_in='0x01' ecx='0x00020000'/>
</feature>
<feature name='dca'>
<cpuid eax_in='0x01' ecx='0x00040000'/>
</feature>
<feature name='sse4.1'> <!-- sse4-1, sse4_1 -->
<cpuid eax_in='0x01' ecx='0x00080000'/>
</feature>
<feature name='sse4.2'> <!-- sse4-2, sse4_2 -->
<cpuid eax_in='0x01' ecx='0x00100000'/>
</feature>
<feature name='x2apic'>
<cpuid eax_in='0x01' ecx='0x00200000'/>
</feature>
<feature name='movbe'>
<cpuid eax_in='0x01' ecx='0x00400000'/>
</feature>
<feature name='popcnt'>
<cpuid eax_in='0x01' ecx='0x00800000'/>
</feature>
<feature name='tsc-deadline'>
<cpuid eax_in='0x01' ecx='0x01000000'/>
</feature>
<feature name='aes'>
<cpuid eax_in='0x01' ecx='0x02000000'/>
</feature>
<feature name='xsave'>
<cpuid eax_in='0x01' ecx='0x04000000'/>
</feature>
<feature name='osxsave'>
<cpuid eax_in='0x01' ecx='0x08000000'/>
</feature>
<feature name='avx'>
<cpuid eax_in='0x01' ecx='0x10000000'/>
</feature>
<feature name='f16c'>
<cpuid eax_in='0x01' ecx='0x20000000'/>
</feature>
<feature name='rdrand'>
<cpuid eax_in='0x01' ecx='0x40000000'/>
</feature>
<feature name='hypervisor'>
<cpuid eax_in='0x01' ecx='0x80000000'/>
</feature>
<!-- Termal Power and Management -->
<feature name='arat'>
<cpuid eax_in='0x06' eax='0x00000004'/>
</feature>
<!-- cpuid function 0x7 ecx 0x0 features -->
<feature name='fsgsbase'>
<cpuid eax_in='0x07' ecx_in='0x00' ebx='0x00000001'/>
</feature>
<feature name='tsc_adjust'> <!-- tsc-adjust -->
<cpuid eax_in='0x07' ecx_in='0x00' ebx='0x00000002'/>
</feature>
<feature name='bmi1'>
<cpuid eax_in='0x07' ecx_in='0x00' ebx='0x00000008'/>
</feature>
<feature name='hle'>
<cpuid eax_in='0x07' ecx_in='0x00' ebx='0x00000010'/>
</feature>
<feature name='avx2'>
<cpuid eax_in='0x07' ecx_in='0x00' ebx='0x00000020'/>
</feature>
<feature name='smep'>
<cpuid eax_in='0x07' ecx_in='0x00' ebx='0x00000080'/>
</feature>
<feature name='bmi2'>
<cpuid eax_in='0x07' ecx_in='0x00' ebx='0x00000100'/>
</feature>
<feature name='erms'>
<cpuid eax_in='0x07' ecx_in='0x00' ebx='0x00000200'/>
</feature>
<feature name='invpcid'>
<cpuid eax_in='0x07' ecx_in='0x00' ebx='0x00000400'/>
</feature>
<feature name='rtm'>
<cpuid eax_in='0x07' ecx_in='0x00' ebx='0x00000800'/>
</feature>
<feature name='cmt'> <!-- cqm -->
<cpuid eax_in='0x07' ecx_in='0x00' ebx='0x00001000'/>
</feature>
<feature name='mpx'>
<cpuid eax_in='0x07' ecx_in='0x00' ebx='0x00004000'/>
</feature>
<feature name='avx512f'>
<cpuid eax_in='0x07' ecx_in='0x00' ebx='0x00010000'/>
</feature>
<feature name='avx512dq'>
<cpuid eax_in='0x07' ecx_in='0x00' ebx='0x00020000'/>
</feature>
<feature name='rdseed'>
<cpuid eax_in='0x07' ecx_in='0x00' ebx='0x00040000'/>
</feature>
<feature name='adx'>
<cpuid eax_in='0x07' ecx_in='0x00' ebx='0x00080000'/>
</feature>
<feature name='smap'>
<cpuid eax_in='0x07' ecx_in='0x00' ebx='0x00100000'/>
</feature>
<feature name='avx512ifma'>
<cpuid eax_in='0x07' ecx_in='0x00' ebx='0x00200000'/>
</feature>
<feature name='pcommit'>
<cpuid eax_in='0x07' ecx_in='0x00' ebx='0x00400000'/>
</feature>
<feature name='clflushopt'>
<cpuid eax_in='0x07' ecx_in='0x00' ebx='0x00800000'/>
</feature>
<feature name='clwb'>
<cpuid eax_in='0x07' ecx_in='0x00' ebx='0x01000000'/>
</feature>
<feature name='intel-pt'>
<cpuid eax_in='0x07' ecx_in='0x00' ebx='0x02000000'/>
</feature>
<feature name='avx512pf'>
<cpuid eax_in='0x07' ecx_in='0x00' ebx='0x04000000'/>
</feature>
<feature name='avx512er'>
<cpuid eax_in='0x07' ecx_in='0x00' ebx='0x08000000'/>
</feature>
<feature name='avx512cd'>
<cpuid eax_in='0x07' ecx_in='0x00' ebx='0x10000000'/>
</feature>
<feature name='sha-ni'>
<cpuid eax_in='0x07' ecx_in='0x00' ebx='0x20000000'/>
</feature>
<feature name='avx512bw'>
<cpuid eax_in='0x07' ecx_in='0x00' ebx='0x40000000'/>
</feature>
<feature name='avx512vl'>
<cpuid eax_in='0x07' ecx_in='0x00' ebx='0x80000000'/>
</feature>
<feature name='avx512vbmi'>
<cpuid eax_in='0x07' ecx_in='0x00' ecx='0x00000002'/>
</feature>
<feature name='umip'>
<cpuid eax_in='0x07' ecx_in='0x00' ecx='0x00000004'/>
</feature>
<feature name='pku'>
<cpuid eax_in='0x07' ecx_in='0x00' ecx='0x00000008'/>
</feature>
<feature name='ospke'>
<cpuid eax_in='0x07' ecx_in='0x00' ecx='0x00000010'/>
</feature>
<feature name='avx512vbmi2'>
<cpuid eax_in='0x07' ecx_in='0x00' ecx='0x00000040'/>
</feature>
<feature name='gfni'>
<cpuid eax_in='0x07' ecx_in='0x00' ecx='0x00000100'/>
</feature>
<feature name='vaes'>
<cpuid eax_in='0x07' ecx_in='0x00' ecx='0x00000200'/>
</feature>
<feature name='vpclmulqdq'>
<cpuid eax_in='0x07' ecx_in='0x00' ecx='0x00000400'/>
</feature>
<feature name='avx512vnni'>
<cpuid eax_in='0x07' ecx_in='0x00' ecx='0x00000800'/>
</feature>
<feature name='avx512bitalg'>
<cpuid eax_in='0x07' ecx_in='0x00' ecx='0x00001000'/>
</feature>
<feature name='avx512-vpopcntdq'>
<cpuid eax_in='0x07' ecx_in='0x00' ecx='0x00004000'/>
</feature>
<feature name='la57'>
<cpuid eax_in='0x07' ecx_in='0x00' ecx='0x00010000'/>
</feature>
<feature name='avx512-4vnniw'>
<cpuid eax_in='0x07' ecx_in='0x00' edx='0x00000004'/>
</feature>
<feature name='avx512-4fmaps'>
<cpuid eax_in='0x07' ecx_in='0x00' edx='0x00000008'/>
</feature>
<feature name='pconfig'>
<cpuid eax_in='0x07' ecx_in='0x00' edx='0x00040000'/>
</feature>
<feature name='spec-ctrl'>
<cpuid eax_in='0x07' ecx_in='0x00' edx='0x04000000'/>
</feature>
<feature name='stibp'>
<cpuid eax_in='0x07' ecx_in='0x00' edx='0x08000000'/>
</feature>
<feature name='arch-capabilities'> <!-- arch_capabilities, arch-facilities -->
<cpuid eax_in='0x07' ecx_in='0x00' edx='0x20000000'/>
</feature>
<feature name='ssbd'>
<cpuid eax_in='0x07' ecx_in='0x00' edx='0x80000000'/>
</feature>
<!-- Processor Extended State Enumeration sub leaf 1 -->
<feature name='xsaveopt'>
<cpuid eax_in='0x0d' ecx_in='0x01' eax='0x00000001'/>
</feature>
<feature name='xsavec'>
<cpuid eax_in='0x0d' ecx_in='0x01' eax='0x00000002'/>
</feature>
<feature name='xgetbv1'>
<cpuid eax_in='0x0d' ecx_in='0x01' eax='0x00000004'/>
</feature>
<feature name='xsaves' migratable='no'>
<cpuid eax_in='0x0d' ecx_in='0x01' eax='0x00000008'/>
</feature>
<!-- cpuid level 0x0000000f:1 (edx) -->
<feature name='mbm_total'>
<cpuid eax_in='0x0f' ecx_in='0x01' edx='0x00000002'/>
</feature>
<feature name='mbm_local'>
<cpuid eax_in='0x0f' ecx_in='0x01' edx='0x00000004'/>
</feature>
<!-- extended features, EDX -->
<feature name='syscall'>
<cpuid eax_in='0x80000001' edx='0x00000800'/>
</feature>
<feature name='nx'> <!-- xd -->
<cpuid eax_in='0x80000001' edx='0x00100000'/>
</feature>
<feature name='mmxext'>
<cpuid eax_in='0x80000001' edx='0x00400000'/>
</feature>
<feature name='fxsr_opt'> <!-- ffxsr, fxsr-opt -->
<cpuid eax_in='0x80000001' edx='0x02000000'/>
</feature>
<feature name='pdpe1gb'>
<cpuid eax_in='0x80000001' edx='0x04000000'/>
</feature>
<feature name='rdtscp'>
<cpuid eax_in='0x80000001' edx='0x08000000'/>
</feature>
<feature name='lm'> <!-- i64 -->
<cpuid eax_in='0x80000001' edx='0x20000000'/>
</feature>
<feature name='3dnowext'>
<cpuid eax_in='0x80000001' edx='0x40000000'/>
</feature>
<feature name='3dnow'>
<cpuid eax_in='0x80000001' edx='0x80000000'/>
</feature>
<!-- extended features, ECX -->
<feature name='lahf_lm'> <!-- lahf-lm -->
<cpuid eax_in='0x80000001' ecx='0x00000001'/>
</feature>
<feature name='cmp_legacy'> <!-- cmp-legacy -->
<cpuid eax_in='0x80000001' ecx='0x00000002'/>
</feature>
<feature name='svm'>
<cpuid eax_in='0x80000001' ecx='0x00000004'/>
</feature>
<feature name='extapic'>
<cpuid eax_in='0x80000001' ecx='0x00000008'/>
</feature>
<feature name='cr8legacy'>
<cpuid eax_in='0x80000001' ecx='0x00000010'/>
</feature>
<feature name='abm'>
<cpuid eax_in='0x80000001' ecx='0x00000020'/>
</feature>
<feature name='sse4a'>
<cpuid eax_in='0x80000001' ecx='0x00000040'/>
</feature>
<feature name='misalignsse'>
<cpuid eax_in='0x80000001' ecx='0x00000080'/>
</feature>
<feature name='3dnowprefetch'>
<cpuid eax_in='0x80000001' ecx='0x00000100'/>
</feature>
<feature name='osvw'>
<cpuid eax_in='0x80000001' ecx='0x00000200'/>
</feature>
<feature name='ibs'>
<cpuid eax_in='0x80000001' ecx='0x00000400'/>
</feature>
<feature name='xop'>
<cpuid eax_in='0x80000001' ecx='0x00000800'/>
</feature>
<feature name='skinit'>
<cpuid eax_in='0x80000001' ecx='0x00001000'/>
</feature>
<feature name='wdt'>
<cpuid eax_in='0x80000001' ecx='0x00002000'/>
</feature>
<feature name='lwp'>
<cpuid eax_in='0x80000001' ecx='0x00008000'/>
</feature>
<feature name='fma4'>
<cpuid eax_in='0x80000001' ecx='0x00010000'/>
</feature>
<feature name='tce'>
<cpuid eax_in='0x80000001' ecx='0x00020000'/>
</feature>
<feature name='cvt16'>
<cpuid eax_in='0x80000001' ecx='0x00040000'/>
</feature>
<feature name='nodeid_msr'> <!-- nodeid-msr -->
<cpuid eax_in='0x80000001' ecx='0x00080000'/>
</feature>
<feature name='tbm'>
<cpuid eax_in='0x80000001' ecx='0x00200000'/>
</feature>
<feature name='topoext'>
<cpuid eax_in='0x80000001' ecx='0x00400000'/>
</feature>
<feature name='perfctr_core'> <!-- perfctr-core -->
<cpuid eax_in='0x80000001' ecx='0x00800000'/>
</feature>
<feature name='perfctr_nb'> <!-- perfctr-nb -->
<cpuid eax_in='0x80000001' ecx='0x01000000'/>
</feature>
<!-- Advanced Power Management edx features -->
<feature name='invtsc' migratable='no'>
<cpuid eax_in='0x80000007' edx='0x00000100'/>
</feature>
<!-- More AMD-specific features -->
<feature name='wbnoinvd'>
<cpuid eax_in='0x80000008' ebx='0x00000200'/>
</feature>
<feature name='ibpb'>
<cpuid eax_in='0x80000008' ebx='0x00001000'/>
</feature>
<feature name='amd-ssbd'>
<cpuid eax_in='0x80000008' ebx='0x01000000'/>
</feature>
<feature name='virt-ssbd'>
<cpuid eax_in='0x80000008' ebx='0x02000000'/>
</feature>
<feature name='amd-no-ssb'>
<cpuid eax_in='0x80000008' ebx='0x04000000'/>
</feature>
</cpus>