The qemu part of 'domaincapstest' supports testing of the '+hvf' variant of files, but doesn't properly pick the input file. The input file lacks the variant part thus the wrong file is used. Propagate the variant and select the correct input file. Fixes: 738c5bae888cfa72ed359899cf1a41fed9dbb0f5 Signed-off-by: Peter Krempa <pkrempa@xxxxxxxxxx> --- .../qemu_7.0.0-hvf.aarch64+hvf.xml | 43 +- .../qemu_7.2.0-hvf.x86_64+hvf.xml | 952 +++++++++++++++++- tests/domaincapstest.c | 12 +- 3 files changed, 1001 insertions(+), 6 deletions(-) diff --git a/tests/domaincapsdata/qemu_7.0.0-hvf.aarch64+hvf.xml b/tests/domaincapsdata/qemu_7.0.0-hvf.aarch64+hvf.xml index bf130dde10..e3d4dbd3db 100644 --- a/tests/domaincapsdata/qemu_7.0.0-hvf.aarch64+hvf.xml +++ b/tests/domaincapsdata/qemu_7.0.0-hvf.aarch64+hvf.xml @@ -3,6 +3,7 @@ <domain>hvf</domain> <machine>virt-7.0</machine> <arch>aarch64</arch> + <vcpu max='512'/> <iothreads supported='yes'/> <os supported='yes'> <enum name='firmware'> @@ -37,7 +38,47 @@ </enum> </mode> <mode name='host-model' supported='no'/> - <mode name='custom' supported='no'/> + <mode name='custom' supported='yes'> + <model usable='unknown' vendor='unknown'>a64fx</model> + <model usable='unknown' vendor='unknown'>arm1026</model> + <model usable='unknown' vendor='unknown'>arm1136</model> + <model usable='unknown' vendor='unknown'>arm1136-r2</model> + <model usable='unknown' vendor='unknown'>arm1176</model> + <model usable='unknown' vendor='unknown'>arm11mpcore</model> + <model usable='unknown' vendor='unknown'>arm926</model> + <model usable='unknown' vendor='unknown'>arm946</model> + <model usable='unknown' vendor='unknown'>cortex-a15</model> + <model usable='unknown' vendor='unknown'>cortex-a53</model> + <model usable='unknown' vendor='unknown'>cortex-a57</model> + <model usable='unknown' vendor='unknown'>cortex-a7</model> + <model usable='unknown' vendor='unknown'>cortex-a72</model> + <model usable='unknown' vendor='unknown'>cortex-a8</model> + <model usable='unknown' vendor='unknown'>cortex-a9</model> + <model usable='unknown' vendor='unknown'>cortex-m0</model> + <model usable='unknown' vendor='unknown'>cortex-m3</model> + <model usable='unknown' vendor='unknown'>cortex-m33</model> + <model usable='unknown' vendor='unknown'>cortex-m4</model> + <model usable='unknown' vendor='unknown'>cortex-m55</model> + <model usable='unknown' vendor='unknown'>cortex-m7</model> + <model usable='unknown' vendor='unknown'>cortex-r5</model> + <model usable='unknown' vendor='unknown'>cortex-r5f</model> + <model usable='unknown' vendor='unknown'>max</model> + <model usable='unknown' vendor='unknown'>pxa250</model> + <model usable='unknown' vendor='unknown'>pxa255</model> + <model usable='unknown' vendor='unknown'>pxa260</model> + <model usable='unknown' vendor='unknown'>pxa261</model> + <model usable='unknown' vendor='unknown'>pxa262</model> + <model usable='unknown' vendor='unknown'>pxa270</model> + <model usable='unknown' vendor='unknown'>pxa270-a0</model> + <model usable='unknown' vendor='unknown'>pxa270-a1</model> + <model usable='unknown' vendor='unknown'>pxa270-b0</model> + <model usable='unknown' vendor='unknown'>pxa270-b1</model> + <model usable='unknown' vendor='unknown'>pxa270-c0</model> + <model usable='unknown' vendor='unknown'>pxa270-c5</model> + <model usable='unknown' vendor='unknown'>sa1100</model> + <model usable='unknown' vendor='unknown'>sa1110</model> + <model usable='unknown' vendor='unknown'>ti925t</model> + </mode> </cpu> <memoryBacking supported='yes'> <enum name='sourceType'> diff --git a/tests/domaincapsdata/qemu_7.2.0-hvf.x86_64+hvf.xml b/tests/domaincapsdata/qemu_7.2.0-hvf.x86_64+hvf.xml index 75b2f1102d..ce2e4f9f37 100644 --- a/tests/domaincapsdata/qemu_7.2.0-hvf.x86_64+hvf.xml +++ b/tests/domaincapsdata/qemu_7.2.0-hvf.x86_64+hvf.xml @@ -3,6 +3,7 @@ <domain>hvf</domain> <machine>pc-i440fx-7.2</machine> <arch>x86_64</arch> + <vcpu max='255'/> <iothreads supported='yes'/> <os supported='yes'> <enum name='firmware'> @@ -38,8 +39,955 @@ <value>off</value> </enum> </mode> - <mode name='host-model' supported='no'/> - <mode name='custom' supported='no'/> + <mode name='host-model' supported='yes'> + <model fallback='forbid'>EPYC-Rome</model> + <vendor>AMD</vendor> + <maxphysaddr mode='passthrough' limit='64'/> + <feature policy='require' name='x2apic'/> + <feature policy='require' name='tsc-deadline'/> + <feature policy='require' name='hypervisor'/> + <feature policy='require' name='tsc_adjust'/> + <feature policy='require' name='stibp'/> + <feature policy='require' name='arch-capabilities'/> + <feature policy='require' name='ssbd'/> + <feature policy='require' name='xsaves'/> + <feature policy='require' name='cmp_legacy'/> + <feature policy='require' name='invtsc'/> + <feature policy='require' name='amd-ssbd'/> + <feature policy='require' name='virt-ssbd'/> + <feature policy='require' name='lbrv'/> + <feature policy='require' name='tsc-scale'/> + <feature policy='require' name='vmcb-clean'/> + <feature policy='require' name='pause-filter'/> + <feature policy='require' name='pfthreshold'/> + <feature policy='require' name='v-vmsave-vmload'/> + <feature policy='require' name='vgif'/> + <feature policy='require' name='svme-addr-chk'/> + <feature policy='require' name='rdctl-no'/> + <feature policy='require' name='skip-l1dfl-vmentry'/> + <feature policy='require' name='mds-no'/> + <feature policy='require' name='pschange-mc-no'/> + </mode> + <mode name='custom' supported='yes'> + <model usable='yes' vendor='unknown' canonical='486-v1'>486</model> + <model usable='yes' vendor='unknown'>486-v1</model> + <model usable='no' vendor='Intel' canonical='Broadwell-v1'>Broadwell</model> + <blockers model='Broadwell'> + <feature name='erms'/> + <feature name='hle'/> + <feature name='invpcid'/> + <feature name='pcid'/> + <feature name='rtm'/> + </blockers> + <model usable='no' vendor='Intel' canonical='Broadwell-v3'>Broadwell-IBRS</model> + <blockers model='Broadwell-IBRS'> + <feature name='erms'/> + <feature name='hle'/> + <feature name='invpcid'/> + <feature name='pcid'/> + <feature name='rtm'/> + <feature name='spec-ctrl'/> + </blockers> + <model usable='no' vendor='Intel' canonical='Broadwell-v2'>Broadwell-noTSX</model> + <blockers model='Broadwell-noTSX'> + <feature name='erms'/> + <feature name='invpcid'/> + <feature name='pcid'/> + </blockers> + <model usable='no' vendor='Intel' canonical='Broadwell-v4'>Broadwell-noTSX-IBRS</model> + <blockers model='Broadwell-noTSX-IBRS'> + <feature name='erms'/> + <feature name='invpcid'/> + <feature name='pcid'/> + <feature name='spec-ctrl'/> + </blockers> + <model usable='no' vendor='Intel'>Broadwell-v1</model> + <blockers model='Broadwell-v1'> + <feature name='erms'/> + <feature name='hle'/> + <feature name='invpcid'/> + <feature name='pcid'/> + <feature name='rtm'/> + </blockers> + <model usable='no' vendor='Intel'>Broadwell-v2</model> + <blockers model='Broadwell-v2'> + <feature name='erms'/> + <feature name='invpcid'/> + <feature name='pcid'/> + </blockers> + <model usable='no' vendor='Intel'>Broadwell-v3</model> + <blockers model='Broadwell-v3'> + <feature name='erms'/> + <feature name='hle'/> + <feature name='invpcid'/> + <feature name='pcid'/> + <feature name='rtm'/> + <feature name='spec-ctrl'/> + </blockers> + <model usable='no' vendor='Intel'>Broadwell-v4</model> + <blockers model='Broadwell-v4'> + <feature name='erms'/> + <feature name='invpcid'/> + <feature name='pcid'/> + <feature name='spec-ctrl'/> + </blockers> + <model usable='no' vendor='Intel' canonical='Cascadelake-Server-v1'>Cascadelake-Server</model> + <blockers model='Cascadelake-Server'> + <feature name='avx512bw'/> + <feature name='avx512cd'/> + <feature name='avx512dq'/> + <feature name='avx512f'/> + <feature name='avx512vl'/> + <feature name='avx512vnni'/> + <feature name='erms'/> + <feature name='hle'/> + <feature name='invpcid'/> + <feature name='pcid'/> + <feature name='pku'/> + <feature name='rtm'/> + <feature name='spec-ctrl'/> + </blockers> + <model usable='no' vendor='Intel' canonical='Cascadelake-Server-v3'>Cascadelake-Server-noTSX</model> + <blockers model='Cascadelake-Server-noTSX'> + <feature name='avx512bw'/> + <feature name='avx512cd'/> + <feature name='avx512dq'/> + <feature name='avx512f'/> + <feature name='avx512vl'/> + <feature name='avx512vnni'/> + <feature name='erms'/> + <feature name='ibrs-all'/> + <feature name='invpcid'/> + <feature name='pcid'/> + <feature name='pku'/> + <feature name='spec-ctrl'/> + </blockers> + <model usable='no' vendor='Intel'>Cascadelake-Server-v1</model> + <blockers model='Cascadelake-Server-v1'> + <feature name='avx512bw'/> + <feature name='avx512cd'/> + <feature name='avx512dq'/> + <feature name='avx512f'/> + <feature name='avx512vl'/> + <feature name='avx512vnni'/> + <feature name='erms'/> + <feature name='hle'/> + <feature name='invpcid'/> + <feature name='pcid'/> + <feature name='pku'/> + <feature name='rtm'/> + <feature name='spec-ctrl'/> + </blockers> + <model usable='no' vendor='Intel'>Cascadelake-Server-v2</model> + <blockers model='Cascadelake-Server-v2'> + <feature name='avx512bw'/> + <feature name='avx512cd'/> + <feature name='avx512dq'/> + <feature name='avx512f'/> + <feature name='avx512vl'/> + <feature name='avx512vnni'/> + <feature name='erms'/> + <feature name='hle'/> + <feature name='ibrs-all'/> + <feature name='invpcid'/> + <feature name='pcid'/> + <feature name='pku'/> + <feature name='rtm'/> + <feature name='spec-ctrl'/> + </blockers> + <model usable='no' vendor='Intel'>Cascadelake-Server-v3</model> + <blockers model='Cascadelake-Server-v3'> + <feature name='avx512bw'/> + <feature name='avx512cd'/> + <feature name='avx512dq'/> + <feature name='avx512f'/> + <feature name='avx512vl'/> + <feature name='avx512vnni'/> + <feature name='erms'/> + <feature name='ibrs-all'/> + <feature name='invpcid'/> + <feature name='pcid'/> + <feature name='pku'/> + <feature name='spec-ctrl'/> + </blockers> + <model usable='no' vendor='Intel'>Cascadelake-Server-v4</model> + <blockers model='Cascadelake-Server-v4'> + <feature name='avx512bw'/> + <feature name='avx512cd'/> + <feature name='avx512dq'/> + <feature name='avx512f'/> + <feature name='avx512vl'/> + <feature name='avx512vnni'/> + <feature name='erms'/> + <feature name='ibrs-all'/> + <feature name='invpcid'/> + <feature name='pcid'/> + <feature name='pku'/> + <feature name='spec-ctrl'/> + </blockers> + <model usable='no' vendor='Intel'>Cascadelake-Server-v5</model> + <blockers model='Cascadelake-Server-v5'> + <feature name='avx512bw'/> + <feature name='avx512cd'/> + <feature name='avx512dq'/> + <feature name='avx512f'/> + <feature name='avx512vl'/> + <feature name='avx512vnni'/> + <feature name='erms'/> + <feature name='ibrs-all'/> + <feature name='invpcid'/> + <feature name='pcid'/> + <feature name='pku'/> + <feature name='spec-ctrl'/> + </blockers> + <model usable='yes' vendor='Intel' canonical='Conroe-v1'>Conroe</model> + <model usable='yes' vendor='Intel'>Conroe-v1</model> + <model usable='no' vendor='Intel' canonical='Cooperlake-v1'>Cooperlake</model> + <blockers model='Cooperlake'> + <feature name='avx512-bf16'/> + <feature name='avx512bw'/> + <feature name='avx512cd'/> + <feature name='avx512dq'/> + <feature name='avx512f'/> + <feature name='avx512vl'/> + <feature name='avx512vnni'/> + <feature name='erms'/> + <feature name='hle'/> + <feature name='ibrs-all'/> + <feature name='invpcid'/> + <feature name='pcid'/> + <feature name='pku'/> + <feature name='rtm'/> + <feature name='spec-ctrl'/> + <feature name='taa-no'/> + </blockers> + <model usable='no' vendor='Intel'>Cooperlake-v1</model> + <blockers model='Cooperlake-v1'> + <feature name='avx512-bf16'/> + <feature name='avx512bw'/> + <feature name='avx512cd'/> + <feature name='avx512dq'/> + <feature name='avx512f'/> + <feature name='avx512vl'/> + <feature name='avx512vnni'/> + <feature name='erms'/> + <feature name='hle'/> + <feature name='ibrs-all'/> + <feature name='invpcid'/> + <feature name='pcid'/> + <feature name='pku'/> + <feature name='rtm'/> + <feature name='spec-ctrl'/> + <feature name='taa-no'/> + </blockers> + <model usable='no' vendor='Intel'>Cooperlake-v2</model> + <blockers model='Cooperlake-v2'> + <feature name='avx512-bf16'/> + <feature name='avx512bw'/> + <feature name='avx512cd'/> + <feature name='avx512dq'/> + <feature name='avx512f'/> + <feature name='avx512vl'/> + <feature name='avx512vnni'/> + <feature name='erms'/> + <feature name='hle'/> + <feature name='ibrs-all'/> + <feature name='invpcid'/> + <feature name='pcid'/> + <feature name='pku'/> + <feature name='rtm'/> + <feature name='spec-ctrl'/> + <feature name='taa-no'/> + </blockers> + <model usable='no' vendor='Intel' canonical='Denverton-v1'>Denverton</model> + <blockers model='Denverton'> + <feature name='erms'/> + <feature name='mpx'/> + <feature name='spec-ctrl'/> + </blockers> + <model usable='no' vendor='Intel'>Denverton-v1</model> + <blockers model='Denverton-v1'> + <feature name='erms'/> + <feature name='mpx'/> + <feature name='spec-ctrl'/> + </blockers> + <model usable='no' vendor='Intel'>Denverton-v2</model> + <blockers model='Denverton-v2'> + <feature name='erms'/> + <feature name='spec-ctrl'/> + </blockers> + <model usable='no' vendor='Intel'>Denverton-v3</model> + <blockers model='Denverton-v3'> + <feature name='erms'/> + <feature name='spec-ctrl'/> + </blockers> + <model usable='yes' vendor='Hygon' canonical='Dhyana-v1'>Dhyana</model> + <model usable='yes' vendor='Hygon'>Dhyana-v1</model> + <model usable='yes' vendor='Hygon'>Dhyana-v2</model> + <model usable='yes' vendor='AMD' canonical='EPYC-v1'>EPYC</model> + <model usable='yes' vendor='AMD' canonical='EPYC-v2'>EPYC-IBPB</model> + <model usable='no' vendor='AMD' canonical='EPYC-Milan-v1'>EPYC-Milan</model> + <blockers model='EPYC-Milan'> + <feature name='erms'/> + <feature name='fsrm'/> + <feature name='ibrs'/> + <feature name='invpcid'/> + <feature name='pcid'/> + <feature name='pku'/> + </blockers> + <model usable='no' vendor='AMD'>EPYC-Milan-v1</model> + <blockers model='EPYC-Milan-v1'> + <feature name='erms'/> + <feature name='fsrm'/> + <feature name='ibrs'/> + <feature name='invpcid'/> + <feature name='pcid'/> + <feature name='pku'/> + </blockers> + <model usable='yes' vendor='AMD' canonical='EPYC-Rome-v1'>EPYC-Rome</model> + <model usable='yes' vendor='AMD'>EPYC-Rome-v1</model> + <model usable='no' vendor='AMD'>EPYC-Rome-v2</model> + <blockers model='EPYC-Rome-v2'> + <feature name='ibrs'/> + </blockers> + <model usable='yes' vendor='AMD'>EPYC-v1</model> + <model usable='yes' vendor='AMD'>EPYC-v2</model> + <model usable='yes' vendor='AMD'>EPYC-v3</model> + <model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model> + <blockers model='Haswell'> + <feature name='erms'/> + <feature name='hle'/> + <feature name='invpcid'/> + <feature name='pcid'/> + <feature name='rtm'/> + </blockers> + <model usable='no' vendor='Intel' canonical='Haswell-v3'>Haswell-IBRS</model> + <blockers model='Haswell-IBRS'> + <feature name='erms'/> + <feature name='hle'/> + <feature name='invpcid'/> + <feature name='pcid'/> + <feature name='rtm'/> + <feature name='spec-ctrl'/> + </blockers> + <model usable='no' vendor='Intel' canonical='Haswell-v2'>Haswell-noTSX</model> + <blockers model='Haswell-noTSX'> + <feature name='erms'/> + <feature name='invpcid'/> + <feature name='pcid'/> + </blockers> + <model usable='no' vendor='Intel' canonical='Haswell-v4'>Haswell-noTSX-IBRS</model> + <blockers model='Haswell-noTSX-IBRS'> + <feature name='erms'/> + <feature name='invpcid'/> + <feature name='pcid'/> + <feature name='spec-ctrl'/> + </blockers> + <model usable='no' vendor='Intel'>Haswell-v1</model> + <blockers model='Haswell-v1'> + <feature name='erms'/> + <feature name='hle'/> + <feature name='invpcid'/> + <feature name='pcid'/> + <feature name='rtm'/> + </blockers> + <model usable='no' vendor='Intel'>Haswell-v2</model> + <blockers model='Haswell-v2'> + <feature name='erms'/> + <feature name='invpcid'/> + <feature name='pcid'/> + </blockers> + <model usable='no' vendor='Intel'>Haswell-v3</model> + <blockers model='Haswell-v3'> + <feature name='erms'/> + <feature name='hle'/> + <feature name='invpcid'/> + <feature name='pcid'/> + <feature name='rtm'/> + <feature name='spec-ctrl'/> + </blockers> + <model usable='no' vendor='Intel'>Haswell-v4</model> + <blockers model='Haswell-v4'> + <feature name='erms'/> + <feature name='invpcid'/> + <feature name='pcid'/> + <feature name='spec-ctrl'/> + </blockers> + <model usable='no' vendor='Intel' canonical='Icelake-Server-v1'>Icelake-Server</model> + <blockers model='Icelake-Server'> + <feature name='avx512-vpopcntdq'/> + <feature name='avx512bitalg'/> + <feature name='avx512bw'/> + <feature name='avx512cd'/> + <feature name='avx512dq'/> + <feature name='avx512f'/> + <feature name='avx512vbmi'/> + <feature name='avx512vbmi2'/> + <feature name='avx512vl'/> + <feature name='avx512vnni'/> + <feature name='erms'/> + <feature name='gfni'/> + <feature name='hle'/> + <feature name='invpcid'/> + <feature name='la57'/> + <feature name='pcid'/> + <feature name='pku'/> + <feature name='rtm'/> + <feature name='spec-ctrl'/> + <feature name='vaes'/> + <feature name='vpclmulqdq'/> + </blockers> + <model usable='no' vendor='Intel' canonical='Icelake-Server-v2'>Icelake-Server-noTSX</model> + <blockers model='Icelake-Server-noTSX'> + <feature name='avx512-vpopcntdq'/> + <feature name='avx512bitalg'/> + <feature name='avx512bw'/> + <feature name='avx512cd'/> + <feature name='avx512dq'/> + <feature name='avx512f'/> + <feature name='avx512vbmi'/> + <feature name='avx512vbmi2'/> + <feature name='avx512vl'/> + <feature name='avx512vnni'/> + <feature name='erms'/> + <feature name='gfni'/> + <feature name='invpcid'/> + <feature name='la57'/> + <feature name='pcid'/> + <feature name='pku'/> + <feature name='spec-ctrl'/> + <feature name='vaes'/> + <feature name='vpclmulqdq'/> + </blockers> + <model usable='no' vendor='Intel'>Icelake-Server-v1</model> + <blockers model='Icelake-Server-v1'> + <feature name='avx512-vpopcntdq'/> + <feature name='avx512bitalg'/> + <feature name='avx512bw'/> + <feature name='avx512cd'/> + <feature name='avx512dq'/> + <feature name='avx512f'/> + <feature name='avx512vbmi'/> + <feature name='avx512vbmi2'/> + <feature name='avx512vl'/> + <feature name='avx512vnni'/> + <feature name='erms'/> + <feature name='gfni'/> + <feature name='hle'/> + <feature name='invpcid'/> + <feature name='la57'/> + <feature name='pcid'/> + <feature name='pku'/> + <feature name='rtm'/> + <feature name='spec-ctrl'/> + <feature name='vaes'/> + <feature name='vpclmulqdq'/> + </blockers> + <model usable='no' vendor='Intel'>Icelake-Server-v2</model> + <blockers model='Icelake-Server-v2'> + <feature name='avx512-vpopcntdq'/> + <feature name='avx512bitalg'/> + <feature name='avx512bw'/> + <feature name='avx512cd'/> + <feature name='avx512dq'/> + <feature name='avx512f'/> + <feature name='avx512vbmi'/> + <feature name='avx512vbmi2'/> + <feature name='avx512vl'/> + <feature name='avx512vnni'/> + <feature name='erms'/> + <feature name='gfni'/> + <feature name='invpcid'/> + <feature name='la57'/> + <feature name='pcid'/> + <feature name='pku'/> + <feature name='spec-ctrl'/> + <feature name='vaes'/> + <feature name='vpclmulqdq'/> + </blockers> + <model usable='no' vendor='Intel'>Icelake-Server-v3</model> + <blockers model='Icelake-Server-v3'> + <feature name='avx512-vpopcntdq'/> + <feature name='avx512bitalg'/> + <feature name='avx512bw'/> + <feature name='avx512cd'/> + <feature name='avx512dq'/> + <feature name='avx512f'/> + <feature name='avx512vbmi'/> + <feature name='avx512vbmi2'/> + <feature name='avx512vl'/> + <feature name='avx512vnni'/> + <feature name='erms'/> + <feature name='gfni'/> + <feature name='ibrs-all'/> + <feature name='invpcid'/> + <feature name='la57'/> + <feature name='pcid'/> + <feature name='pku'/> + <feature name='spec-ctrl'/> + <feature name='taa-no'/> + <feature name='vaes'/> + <feature name='vpclmulqdq'/> + </blockers> + <model usable='no' vendor='Intel'>Icelake-Server-v4</model> + <blockers model='Icelake-Server-v4'> + <feature name='avx512-vpopcntdq'/> + <feature name='avx512bitalg'/> + <feature name='avx512bw'/> + <feature name='avx512cd'/> + <feature name='avx512dq'/> + <feature name='avx512f'/> + <feature name='avx512ifma'/> + <feature name='avx512vbmi'/> + <feature name='avx512vbmi2'/> + <feature name='avx512vl'/> + <feature name='avx512vnni'/> + <feature name='erms'/> + <feature name='fsrm'/> + <feature name='gfni'/> + <feature name='ibrs-all'/> + <feature name='invpcid'/> + <feature name='la57'/> + <feature name='pcid'/> + <feature name='pku'/> + <feature name='spec-ctrl'/> + <feature name='taa-no'/> + <feature name='vaes'/> + <feature name='vpclmulqdq'/> + </blockers> + <model usable='no' vendor='Intel'>Icelake-Server-v5</model> + <blockers model='Icelake-Server-v5'> + <feature name='avx512-vpopcntdq'/> + <feature name='avx512bitalg'/> + <feature name='avx512bw'/> + <feature name='avx512cd'/> + <feature name='avx512dq'/> + <feature name='avx512f'/> + <feature name='avx512ifma'/> + <feature name='avx512vbmi'/> + <feature name='avx512vbmi2'/> + <feature name='avx512vl'/> + <feature name='avx512vnni'/> + <feature name='erms'/> + <feature name='fsrm'/> + <feature name='gfni'/> + <feature name='ibrs-all'/> + <feature name='invpcid'/> + <feature name='la57'/> + <feature name='pcid'/> + <feature name='pku'/> + <feature name='spec-ctrl'/> + <feature name='taa-no'/> + <feature name='vaes'/> + <feature name='vpclmulqdq'/> + </blockers> + <model usable='no' vendor='Intel'>Icelake-Server-v6</model> + <blockers model='Icelake-Server-v6'> + <feature name='avx512-vpopcntdq'/> + <feature name='avx512bitalg'/> + <feature name='avx512bw'/> + <feature name='avx512cd'/> + <feature name='avx512dq'/> + <feature name='avx512f'/> + <feature name='avx512ifma'/> + <feature name='avx512vbmi'/> + <feature name='avx512vbmi2'/> + <feature name='avx512vl'/> + <feature name='avx512vnni'/> + <feature name='erms'/> + <feature name='fsrm'/> + <feature name='gfni'/> + <feature name='ibrs-all'/> + <feature name='invpcid'/> + <feature name='la57'/> + <feature name='pcid'/> + <feature name='pku'/> + <feature name='spec-ctrl'/> + <feature name='taa-no'/> + <feature name='vaes'/> + <feature name='vpclmulqdq'/> + </blockers> + <model usable='no' vendor='Intel' canonical='IvyBridge-v1'>IvyBridge</model> + <blockers model='IvyBridge'> + <feature name='erms'/> + </blockers> + <model usable='no' vendor='Intel' canonical='IvyBridge-v2'>IvyBridge-IBRS</model> + <blockers model='IvyBridge-IBRS'> + <feature name='erms'/> + <feature name='spec-ctrl'/> + </blockers> + <model usable='no' vendor='Intel'>IvyBridge-v1</model> + <blockers model='IvyBridge-v1'> + <feature name='erms'/> + </blockers> + <model usable='no' vendor='Intel'>IvyBridge-v2</model> + <blockers model='IvyBridge-v2'> + <feature name='erms'/> + <feature name='spec-ctrl'/> + </blockers> + <model usable='no' vendor='Intel' canonical='KnightsMill-v1'>KnightsMill</model> + <blockers model='KnightsMill'> + <feature name='avx512-4fmaps'/> + <feature name='avx512-4vnniw'/> + <feature name='avx512-vpopcntdq'/> + <feature name='avx512cd'/> + <feature name='avx512er'/> + <feature name='avx512f'/> + <feature name='avx512pf'/> + <feature name='erms'/> + <feature name='ss'/> + </blockers> + <model usable='no' vendor='Intel'>KnightsMill-v1</model> + <blockers model='KnightsMill-v1'> + <feature name='avx512-4fmaps'/> + <feature name='avx512-4vnniw'/> + <feature name='avx512-vpopcntdq'/> + <feature name='avx512cd'/> + <feature name='avx512er'/> + <feature name='avx512f'/> + <feature name='avx512pf'/> + <feature name='erms'/> + <feature name='ss'/> + </blockers> + <model usable='yes' vendor='Intel' canonical='Nehalem-v1'>Nehalem</model> + <model usable='no' vendor='Intel' canonical='Nehalem-v2'>Nehalem-IBRS</model> + <blockers model='Nehalem-IBRS'> + <feature name='spec-ctrl'/> + </blockers> + <model usable='yes' vendor='Intel'>Nehalem-v1</model> + <model usable='no' vendor='Intel'>Nehalem-v2</model> + <blockers model='Nehalem-v2'> + <feature name='spec-ctrl'/> + </blockers> + <model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model> + <model usable='yes' vendor='AMD'>Opteron_G1-v1</model> + <model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model> + <model usable='yes' vendor='AMD'>Opteron_G2-v1</model> + <model usable='yes' vendor='AMD' canonical='Opteron_G3-v1'>Opteron_G3</model> + <model usable='yes' vendor='AMD'>Opteron_G3-v1</model> + <model usable='no' vendor='AMD' canonical='Opteron_G4-v1'>Opteron_G4</model> + <blockers model='Opteron_G4'> + <feature name='fma4'/> + <feature name='xop'/> + </blockers> + <model usable='no' vendor='AMD'>Opteron_G4-v1</model> + <blockers model='Opteron_G4-v1'> + <feature name='fma4'/> + <feature name='xop'/> + </blockers> + <model usable='no' vendor='AMD' canonical='Opteron_G5-v1'>Opteron_G5</model> + <blockers model='Opteron_G5'> + <feature name='fma4'/> + <feature name='tbm'/> + <feature name='xop'/> + </blockers> + <model usable='no' vendor='AMD'>Opteron_G5-v1</model> + <blockers model='Opteron_G5-v1'> + <feature name='fma4'/> + <feature name='tbm'/> + <feature name='xop'/> + </blockers> + <model usable='yes' vendor='Intel' canonical='Penryn-v1'>Penryn</model> + <model usable='yes' vendor='Intel'>Penryn-v1</model> + <model usable='yes' vendor='Intel' canonical='SandyBridge-v1'>SandyBridge</model> + <model usable='no' vendor='Intel' canonical='SandyBridge-v2'>SandyBridge-IBRS</model> + <blockers model='SandyBridge-IBRS'> + <feature name='spec-ctrl'/> + </blockers> + <model usable='yes' vendor='Intel'>SandyBridge-v1</model> + <model usable='no' vendor='Intel'>SandyBridge-v2</model> + <blockers model='SandyBridge-v2'> + <feature name='spec-ctrl'/> + </blockers> + <model usable='no' vendor='Intel' canonical='Skylake-Client-v1'>Skylake-Client</model> + <blockers model='Skylake-Client'> + <feature name='erms'/> + <feature name='hle'/> + <feature name='invpcid'/> + <feature name='pcid'/> + <feature name='rtm'/> + </blockers> + <model usable='no' vendor='Intel' canonical='Skylake-Client-v2'>Skylake-Client-IBRS</model> + <blockers model='Skylake-Client-IBRS'> + <feature name='erms'/> + <feature name='hle'/> + <feature name='invpcid'/> + <feature name='pcid'/> + <feature name='rtm'/> + <feature name='spec-ctrl'/> + </blockers> + <model usable='no' vendor='Intel' canonical='Skylake-Client-v3'>Skylake-Client-noTSX-IBRS</model> + <blockers model='Skylake-Client-noTSX-IBRS'> + <feature name='erms'/> + <feature name='invpcid'/> + <feature name='pcid'/> + <feature name='spec-ctrl'/> + </blockers> + <model usable='no' vendor='Intel'>Skylake-Client-v1</model> + <blockers model='Skylake-Client-v1'> + <feature name='erms'/> + <feature name='hle'/> + <feature name='invpcid'/> + <feature name='pcid'/> + <feature name='rtm'/> + </blockers> + <model usable='no' vendor='Intel'>Skylake-Client-v2</model> + <blockers model='Skylake-Client-v2'> + <feature name='erms'/> + <feature name='hle'/> + <feature name='invpcid'/> + <feature name='pcid'/> + <feature name='rtm'/> + <feature name='spec-ctrl'/> + </blockers> + <model usable='no' vendor='Intel'>Skylake-Client-v3</model> + <blockers model='Skylake-Client-v3'> + <feature name='erms'/> + <feature name='invpcid'/> + <feature name='pcid'/> + <feature name='spec-ctrl'/> + </blockers> + <model usable='no' vendor='Intel'>Skylake-Client-v4</model> + <blockers model='Skylake-Client-v4'> + <feature name='erms'/> + <feature name='invpcid'/> + <feature name='pcid'/> + <feature name='spec-ctrl'/> + </blockers> + <model usable='no' vendor='Intel' canonical='Skylake-Server-v1'>Skylake-Server</model> + <blockers model='Skylake-Server'> + <feature name='avx512bw'/> + <feature name='avx512cd'/> + <feature name='avx512dq'/> + <feature name='avx512f'/> + <feature name='avx512vl'/> + <feature name='erms'/> + <feature name='hle'/> + <feature name='invpcid'/> + <feature name='pcid'/> + <feature name='pku'/> + <feature name='rtm'/> + </blockers> + <model usable='no' vendor='Intel' canonical='Skylake-Server-v2'>Skylake-Server-IBRS</model> + <blockers model='Skylake-Server-IBRS'> + <feature name='avx512bw'/> + <feature name='avx512cd'/> + <feature name='avx512dq'/> + <feature name='avx512f'/> + <feature name='avx512vl'/> + <feature name='erms'/> + <feature name='hle'/> + <feature name='invpcid'/> + <feature name='pcid'/> + <feature name='pku'/> + <feature name='rtm'/> + <feature name='spec-ctrl'/> + </blockers> + <model usable='no' vendor='Intel' canonical='Skylake-Server-v3'>Skylake-Server-noTSX-IBRS</model> + <blockers model='Skylake-Server-noTSX-IBRS'> + <feature name='avx512bw'/> + <feature name='avx512cd'/> + <feature name='avx512dq'/> + <feature name='avx512f'/> + <feature name='avx512vl'/> + <feature name='erms'/> + <feature name='invpcid'/> + <feature name='pcid'/> + <feature name='pku'/> + <feature name='spec-ctrl'/> + </blockers> + <model usable='no' vendor='Intel'>Skylake-Server-v1</model> + <blockers model='Skylake-Server-v1'> + <feature name='avx512bw'/> + <feature name='avx512cd'/> + <feature name='avx512dq'/> + <feature name='avx512f'/> + <feature name='avx512vl'/> + <feature name='erms'/> + <feature name='hle'/> + <feature name='invpcid'/> + <feature name='pcid'/> + <feature name='pku'/> + <feature name='rtm'/> + </blockers> + <model usable='no' vendor='Intel'>Skylake-Server-v2</model> + <blockers model='Skylake-Server-v2'> + <feature name='avx512bw'/> + <feature name='avx512cd'/> + <feature name='avx512dq'/> + <feature name='avx512f'/> + <feature name='avx512vl'/> + <feature name='erms'/> + <feature name='hle'/> + <feature name='invpcid'/> + <feature name='pcid'/> + <feature name='pku'/> + <feature name='rtm'/> + <feature name='spec-ctrl'/> + </blockers> + <model usable='no' vendor='Intel'>Skylake-Server-v3</model> + <blockers model='Skylake-Server-v3'> + <feature name='avx512bw'/> + <feature name='avx512cd'/> + <feature name='avx512dq'/> + <feature name='avx512f'/> + <feature name='avx512vl'/> + <feature name='erms'/> + <feature name='invpcid'/> + <feature name='pcid'/> + <feature name='pku'/> + <feature name='spec-ctrl'/> + </blockers> + <model usable='no' vendor='Intel'>Skylake-Server-v4</model> + <blockers model='Skylake-Server-v4'> + <feature name='avx512bw'/> + <feature name='avx512cd'/> + <feature name='avx512dq'/> + <feature name='avx512f'/> + <feature name='avx512vl'/> + <feature name='erms'/> + <feature name='invpcid'/> + <feature name='pcid'/> + <feature name='pku'/> + <feature name='spec-ctrl'/> + </blockers> + <model usable='no' vendor='Intel'>Skylake-Server-v5</model> + <blockers model='Skylake-Server-v5'> + <feature name='avx512bw'/> + <feature name='avx512cd'/> + <feature name='avx512dq'/> + <feature name='avx512f'/> + <feature name='avx512vl'/> + <feature name='erms'/> + <feature name='invpcid'/> + <feature name='pcid'/> + <feature name='pku'/> + <feature name='spec-ctrl'/> + </blockers> + <model usable='no' vendor='Intel' canonical='Snowridge-v1'>Snowridge</model> + <blockers model='Snowridge'> + <feature name='cldemote'/> + <feature name='core-capability'/> + <feature name='erms'/> + <feature name='gfni'/> + <feature name='movdir64b'/> + <feature name='movdiri'/> + <feature name='mpx'/> + <feature name='spec-ctrl'/> + <feature name='split-lock-detect'/> + </blockers> + <model usable='no' vendor='Intel'>Snowridge-v1</model> + <blockers model='Snowridge-v1'> + <feature name='cldemote'/> + <feature name='core-capability'/> + <feature name='erms'/> + <feature name='gfni'/> + <feature name='movdir64b'/> + <feature name='movdiri'/> + <feature name='mpx'/> + <feature name='spec-ctrl'/> + <feature name='split-lock-detect'/> + </blockers> + <model usable='no' vendor='Intel'>Snowridge-v2</model> + <blockers model='Snowridge-v2'> + <feature name='cldemote'/> + <feature name='core-capability'/> + <feature name='erms'/> + <feature name='gfni'/> + <feature name='movdir64b'/> + <feature name='movdiri'/> + <feature name='spec-ctrl'/> + <feature name='split-lock-detect'/> + </blockers> + <model usable='no' vendor='Intel'>Snowridge-v3</model> + <blockers model='Snowridge-v3'> + <feature name='cldemote'/> + <feature name='core-capability'/> + <feature name='erms'/> + <feature name='gfni'/> + <feature name='movdir64b'/> + <feature name='movdiri'/> + <feature name='spec-ctrl'/> + <feature name='split-lock-detect'/> + </blockers> + <model usable='no' vendor='Intel'>Snowridge-v4</model> + <blockers model='Snowridge-v4'> + <feature name='cldemote'/> + <feature name='erms'/> + <feature name='gfni'/> + <feature name='movdir64b'/> + <feature name='movdiri'/> + <feature name='spec-ctrl'/> + </blockers> + <model usable='yes' vendor='Intel' canonical='Westmere-v1'>Westmere</model> + <model usable='no' vendor='Intel' canonical='Westmere-v2'>Westmere-IBRS</model> + <blockers model='Westmere-IBRS'> + <feature name='spec-ctrl'/> + </blockers> + <model usable='yes' vendor='Intel'>Westmere-v1</model> + <model usable='no' vendor='Intel'>Westmere-v2</model> + <blockers model='Westmere-v2'> + <feature name='spec-ctrl'/> + </blockers> + <model usable='no' vendor='AMD' canonical='athlon-v1'>athlon</model> + <blockers model='athlon'> + <feature name='3dnow'/> + <feature name='3dnowext'/> + </blockers> + <model usable='no' vendor='AMD'>athlon-v1</model> + <blockers model='athlon-v1'> + <feature name='3dnow'/> + <feature name='3dnowext'/> + </blockers> + <model usable='no' vendor='Intel' canonical='core2duo-v1'>core2duo</model> + <blockers model='core2duo'> + <feature name='ss'/> + </blockers> + <model usable='no' vendor='Intel'>core2duo-v1</model> + <blockers model='core2duo-v1'> + <feature name='ss'/> + </blockers> + <model usable='no' vendor='Intel' canonical='coreduo-v1'>coreduo</model> + <blockers model='coreduo'> + <feature name='ss'/> + </blockers> + <model usable='no' vendor='Intel'>coreduo-v1</model> + <blockers model='coreduo-v1'> + <feature name='ss'/> + </blockers> + <model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model> + <model usable='yes' vendor='unknown'>kvm32-v1</model> + <model usable='yes' vendor='unknown' canonical='kvm64-v1'>kvm64</model> + <model usable='yes' vendor='unknown'>kvm64-v1</model> + <model usable='no' vendor='Intel' canonical='n270-v1'>n270</model> + <blockers model='n270'> + <feature name='ss'/> + </blockers> + <model usable='no' vendor='Intel'>n270-v1</model> + <blockers model='n270-v1'> + <feature name='ss'/> + </blockers> + <model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model> + <model usable='yes' vendor='unknown'>pentium-v1</model> + <model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model> + <model usable='yes' vendor='unknown'>pentium2-v1</model> + <model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model> + <model usable='yes' vendor='unknown'>pentium3-v1</model> + <model usable='no' vendor='AMD' canonical='phenom-v1'>phenom</model> + <blockers model='phenom'> + <feature name='3dnow'/> + <feature name='3dnowext'/> + </blockers> + <model usable='no' vendor='AMD'>phenom-v1</model> + <blockers model='phenom-v1'> + <feature name='3dnow'/> + <feature name='3dnowext'/> + </blockers> + <model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model> + <model usable='yes' vendor='unknown'>qemu32-v1</model> + <model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model> + <model usable='yes' vendor='unknown'>qemu64-v1</model> + </mode> </cpu> <memoryBacking supported='yes'> <enum name='sourceType'> diff --git a/tests/domaincapstest.c b/tests/domaincapstest.c index e520c7d7bc..51fec0558f 100644 --- a/tests/domaincapstest.c +++ b/tests/domaincapstest.c @@ -70,6 +70,7 @@ static int fillQemuCaps(virDomainCaps *domCaps, const char *name, const char *arch, + const char *variant, const char *machine, virQEMUDriverConfig *cfg) { @@ -81,7 +82,7 @@ fillQemuCaps(virDomainCaps *domCaps, if (fakeHostCPU(domCaps->arch) < 0) return -1; - path = g_strdup_printf("%s/%s_%s.xml", TEST_QEMU_CAPS_PATH, name, arch); + path = g_strdup_printf("%s/%s_%s%s.xml", TEST_QEMU_CAPS_PATH, name, arch, variant); if (!(qemuCaps = qemuTestParseCapabilitiesArch(domCaps->arch, path))) return -1; @@ -182,6 +183,7 @@ struct testData { const char *emulator; const char *machine; const char *arch; + const char *variant; virDomainVirtType type; enum testCapsType capsType; const char *capsName; @@ -209,8 +211,8 @@ test_virDomainCapsFormat(const void *opaque) case CAPS_QEMU: #if WITH_QEMU - if (fillQemuCaps(domCaps, data->capsName, data->arch, data->machine, - data->capsOpaque) < 0) + if (fillQemuCaps(domCaps, data->capsName, data->arch, data->variant, + data->machine, data->capsOpaque) < 0) return -1; #endif break; @@ -259,6 +261,7 @@ doTestQemuInternal(const char *version, .emulator = emulator, .machine = machine, .arch = arch, + .variant = variant, .type = type, .capsType = CAPS_QEMU, .capsName = capsName, @@ -426,6 +429,7 @@ mymain(void) .emulator = Emulator, \ .machine = Machine, \ .arch = Arch, \ + .variant = "", \ .type = Type, \ .capsType = CapsType, \ }; \ @@ -440,6 +444,7 @@ mymain(void) .emulator = Emulator, \ .machine = Machine, \ .arch = Arch, \ + .variant = "", \ .type = Type, \ .capsType = CAPS_LIBXL, \ }; \ @@ -456,6 +461,7 @@ mymain(void) .name = name, \ .emulator = Emulator, \ .arch = "x86_64", \ + .variant = "", \ .type = Type, \ .capsType = CAPS_BHYVE, \ .capsOpaque = BhyveCaps, \ -- 2.48.1