query-cpu-definitions QMP command returns a list of unavailable features which prevent CPU models from being usable on the current host. So far we only checked whether the list was empty to mark CPU models as (un)usable. This patch parses all unavailable features for each CPU model and stores them in virDomainCapsCPUModel as a list of usability blockers. Signed-off-by: Jiri Denemark <jdenemar@xxxxxxxxxx> --- src/qemu/qemu_capabilities.c | 2 +- src/qemu/qemu_monitor.c | 2 + src/qemu/qemu_monitor.h | 1 + src/qemu/qemu_monitor_json.c | 26 +- tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml | 1102 +++++++++++++++++++-- tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml | 236 ++++- tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml | 154 ++- tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml | 154 ++- 8 files changed, 1556 insertions(+), 121 deletions(-) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 1ce2aa375f..7ddc6cafd4 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -3006,7 +3006,7 @@ virQEMUCapsProbeQMPCPUDefinitions(virQEMUCapsPtr qemuCaps, usable = VIR_DOMCAPS_CPU_USABLE_NO; if (virDomainCapsCPUModelsAddSteal(models, &cpus[i]->name, usable, - NULL) < 0) + &cpus[i]->blockers) < 0) goto cleanup; } diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c index 363ad76cfe..04bf1ab5c1 100644 --- a/src/qemu/qemu_monitor.c +++ b/src/qemu/qemu_monitor.c @@ -3736,6 +3736,8 @@ qemuMonitorCPUDefInfoFree(qemuMonitorCPUDefInfoPtr cpu) { if (!cpu) return; + + virStringListFree(cpu->blockers); VIR_FREE(cpu->name); VIR_FREE(cpu); } diff --git a/src/qemu/qemu_monitor.h b/src/qemu/qemu_monitor.h index 6414d2483a..ee6f27cf35 100644 --- a/src/qemu/qemu_monitor.h +++ b/src/qemu/qemu_monitor.h @@ -972,6 +972,7 @@ typedef qemuMonitorCPUDefInfo *qemuMonitorCPUDefInfoPtr; struct _qemuMonitorCPUDefInfo { virTristateBool usable; char *name; + char **blockers; /* NULL-terminated string list */ }; int qemuMonitorGetCPUDefinitions(qemuMonitorPtr mon, diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c index c63d250d36..fcdd58b369 100644 --- a/src/qemu/qemu_monitor_json.c +++ b/src/qemu/qemu_monitor_json.c @@ -5076,6 +5076,8 @@ qemuMonitorJSONGetCPUDefinitions(qemuMonitorPtr mon, if (virJSONValueObjectHasKey(child, "unavailable-features")) { virJSONValuePtr blockers; + size_t j; + int len; blockers = virJSONValueObjectGetArray(child, "unavailable-features"); @@ -5086,10 +5088,32 @@ qemuMonitorJSONGetCPUDefinitions(qemuMonitorPtr mon, goto cleanup; } - if (virJSONValueArraySize(blockers) > 0) + len = virJSONValueArraySize(blockers); + + if (len != 0) cpu->usable = VIR_TRISTATE_BOOL_NO; else cpu->usable = VIR_TRISTATE_BOOL_YES; + + if (len > 0 && VIR_ALLOC_N(cpu->blockers, len + 1) < 0) + goto cleanup; + + for (j = 0; j < len; j++) { + virJSONValuePtr blocker = virJSONValueArrayGet(blockers, j); + char *name; + + if (blocker->type != VIR_JSON_TYPE_STRING) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("unexpected value in unavailable-features " + "array")); + goto cleanup; + } + + if (VIR_STRDUP(name, virJSONValueGetString(blocker)) < 0) + goto cleanup; + + cpu->blockers[j] = name; + } } } diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml b/tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml index 2806345b9d..1d3edc527b 100644 --- a/tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml +++ b/tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml @@ -241,72 +241,1050 @@ <cpu type='kvm' name='z196-base' usable='yes'/> <cpu type='kvm' name='z13-base' usable='yes'/> <cpu type='kvm' name='z890' usable='yes'/> - <cpu type='tcg' name='z10EC-base' usable='no'/> - <cpu type='tcg' name='z9EC-base' usable='no'/> - <cpu type='tcg' name='z196.2-base' usable='no'/> + <cpu type='tcg' name='z10EC-base' usable='no'> + <blocker name='dateh2'/> + <blocker name='pfpo'/> + <blocker name='dfphp'/> + <blocker name='dfp'/> + <blocker name='ectg'/> + <blocker name='parseh'/> + <blocker name='hfpue'/> + <blocker name='hfpm'/> + <blocker name='csske'/> + <blocker name='srs'/> + <blocker name='asnlxr'/> + <blocker name='msa'/> + <blocker name='tods'/> + <blocker name='type'/> + </cpu> + <cpu type='tcg' name='z9EC-base' usable='no'> + <blocker name='dateh2'/> + <blocker name='hfpue'/> + <blocker name='hfpm'/> + <blocker name='srs'/> + <blocker name='asnlxr'/> + <blocker name='msa'/> + <blocker name='tods'/> + <blocker name='type'/> + </cpu> + <cpu type='tcg' name='z196.2-base' usable='no'> + <blocker name='dateh2'/> + <blocker name='iacc2'/> + <blocker name='cmpsceh'/> + <blocker name='pfpo'/> + <blocker name='dfphp'/> + <blocker name='dfp'/> + <blocker name='sprogp'/> + <blocker name='fpe'/> + <blocker name='emon'/> + <blocker name='ectg'/> + <blocker name='parseh'/> + <blocker name='hfpue'/> + <blocker name='hfpm'/> + <blocker name='nonqks'/> + <blocker name='csske'/> + <blocker name='srs'/> + <blocker name='asnlxr'/> + <blocker name='msa'/> + <blocker name='tods'/> + <blocker name='type'/> + </cpu> <cpu type='tcg' name='z900-base' usable='yes'/> - <cpu type='tcg' name='z990' usable='no'/> - <cpu type='tcg' name='z900.2-base' usable='no'/> + <cpu type='tcg' name='z990' usable='no'> + <blocker name='hfpm'/> + <blocker name='msa'/> + <blocker name='type'/> + </cpu> + <cpu type='tcg' name='z900.2-base' usable='no'> + <blocker name='type'/> + </cpu> <cpu type='tcg' name='host'/> - <cpu type='tcg' name='z900.3' usable='no'/> - <cpu type='tcg' name='z114' usable='no'/> - <cpu type='tcg' name='z890-base' usable='no'/> - <cpu type='tcg' name='z13.2-base' usable='no'/> - <cpu type='tcg' name='zEC12.2' usable='no'/> - <cpu type='tcg' name='z10BC' usable='no'/> - <cpu type='tcg' name='z900.2' usable='no'/> - <cpu type='tcg' name='z10BC.2' usable='no'/> - <cpu type='tcg' name='z196' usable='no'/> - <cpu type='tcg' name='z9EC' usable='no'/> - <cpu type='tcg' name='z990-base' usable='no'/> - <cpu type='tcg' name='z10EC.3' usable='no'/> + <cpu type='tcg' name='z900.3' usable='no'> + <blocker name='type'/> + </cpu> + <cpu type='tcg' name='z114' usable='no'> + <blocker name='cmm'/> + <blocker name='dateh2'/> + <blocker name='aefsi'/> + <blocker name='sthyi'/> + <blocker name='iacc2'/> + <blocker name='cmpsceh'/> + <blocker name='pfpo'/> + <blocker name='dfphp'/> + <blocker name='dfp'/> + <blocker name='sprogp'/> + <blocker name='fpe'/> + <blocker name='emon'/> + <blocker name='ectg'/> + <blocker name='parseh'/> + <blocker name='hfpue'/> + <blocker name='hfpm'/> + <blocker name='nonqks'/> + <blocker name='ipter'/> + <blocker name='csske'/> + <blocker name='srs'/> + <blocker name='edat'/> + <blocker name='asnlxr'/> + <blocker name='msa4'/> + <blocker name='msa3'/> + <blocker name='msa2'/> + <blocker name='msa1'/> + <blocker name='msa'/> + <blocker name='tods'/> + <blocker name='type'/> + </cpu> + <cpu type='tcg' name='z890-base' usable='no'> + <blocker name='hfpm'/> + <blocker name='msa'/> + <blocker name='type'/> + </cpu> + <cpu type='tcg' name='z13.2-base' usable='no'> + <blocker name='dateh2'/> + <blocker name='dfppc'/> + <blocker name='iacc2'/> + <blocker name='dfpzc'/> + <blocker name='cmpsceh'/> + <blocker name='pfpo'/> + <blocker name='dfphp'/> + <blocker name='dfp'/> + <blocker name='sprogp'/> + <blocker name='fpe'/> + <blocker name='emon'/> + <blocker name='ectg'/> + <blocker name='parseh'/> + <blocker name='hfpue'/> + <blocker name='hfpm'/> + <blocker name='nonqks'/> + <blocker name='csske'/> + <blocker name='srs'/> + <blocker name='asnlxr'/> + <blocker name='msa'/> + <blocker name='gen13ptff'/> + <blocker name='tods'/> + <blocker name='type'/> + </cpu> + <cpu type='tcg' name='zEC12.2' usable='no'> + <blocker name='cmm'/> + <blocker name='dateh2'/> + <blocker name='esop'/> + <blocker name='sea_esop2'/> + <blocker name='edat2'/> + <blocker name='aefsi'/> + <blocker name='sthyi'/> + <blocker name='te'/> + <blocker name='aen'/> + <blocker name='zpci'/> + <blocker name='ri'/> + <blocker name='iacc2'/> + <blocker name='cte'/> + <blocker name='dfpzc'/> + <blocker name='cmpsceh'/> + <blocker name='pfpo'/> + <blocker name='dfphp'/> + <blocker name='dfp'/> + <blocker name='sprogp'/> + <blocker name='fpe'/> + <blocker name='emon'/> + <blocker name='ectg'/> + <blocker name='parseh'/> + <blocker name='hfpue'/> + <blocker name='hfpm'/> + <blocker name='nonqks'/> + <blocker name='ipter'/> + <blocker name='csske'/> + <blocker name='srs'/> + <blocker name='edat'/> + <blocker name='asnlxr'/> + <blocker name='msa4'/> + <blocker name='msa3'/> + <blocker name='msa2'/> + <blocker name='msa1'/> + <blocker name='msa'/> + <blocker name='tods'/> + <blocker name='type'/> + </cpu> + <cpu type='tcg' name='z10BC' usable='no'> + <blocker name='cmm'/> + <blocker name='dateh2'/> + <blocker name='sthyi'/> + <blocker name='pfpo'/> + <blocker name='dfphp'/> + <blocker name='dfp'/> + <blocker name='ectg'/> + <blocker name='parseh'/> + <blocker name='hfpue'/> + <blocker name='hfpm'/> + <blocker name='csske'/> + <blocker name='srs'/> + <blocker name='edat'/> + <blocker name='asnlxr'/> + <blocker name='msa2'/> + <blocker name='msa1'/> + <blocker name='msa'/> + <blocker name='tods'/> + <blocker name='type'/> + </cpu> + <cpu type='tcg' name='z900.2' usable='no'> + <blocker name='type'/> + </cpu> + <cpu type='tcg' name='z10BC.2' usable='no'> + <blocker name='cmm'/> + <blocker name='dateh2'/> + <blocker name='sthyi'/> + <blocker name='pfpo'/> + <blocker name='dfphp'/> + <blocker name='dfp'/> + <blocker name='ectg'/> + <blocker name='parseh'/> + <blocker name='hfpue'/> + <blocker name='hfpm'/> + <blocker name='csske'/> + <blocker name='srs'/> + <blocker name='edat'/> + <blocker name='asnlxr'/> + <blocker name='msa2'/> + <blocker name='msa1'/> + <blocker name='msa'/> + <blocker name='tods'/> + <blocker name='type'/> + </cpu> + <cpu type='tcg' name='z196' usable='no'> + <blocker name='cmm'/> + <blocker name='dateh2'/> + <blocker name='aefsi'/> + <blocker name='sthyi'/> + <blocker name='iacc2'/> + <blocker name='cmpsceh'/> + <blocker name='pfpo'/> + <blocker name='dfphp'/> + <blocker name='dfp'/> + <blocker name='sprogp'/> + <blocker name='fpe'/> + <blocker name='emon'/> + <blocker name='ectg'/> + <blocker name='parseh'/> + <blocker name='hfpue'/> + <blocker name='hfpm'/> + <blocker name='nonqks'/> + <blocker name='ipter'/> + <blocker name='csske'/> + <blocker name='srs'/> + <blocker name='edat'/> + <blocker name='asnlxr'/> + <blocker name='msa4'/> + <blocker name='msa3'/> + <blocker name='msa2'/> + <blocker name='msa1'/> + <blocker name='msa'/> + <blocker name='tods'/> + <blocker name='type'/> + </cpu> + <cpu type='tcg' name='z9EC' usable='no'> + <blocker name='cmm'/> + <blocker name='dateh2'/> + <blocker name='sthyi'/> + <blocker name='hfpue'/> + <blocker name='hfpm'/> + <blocker name='srs'/> + <blocker name='asnlxr'/> + <blocker name='msa1'/> + <blocker name='msa'/> + <blocker name='tods'/> + <blocker name='type'/> + </cpu> + <cpu type='tcg' name='z990-base' usable='no'> + <blocker name='hfpm'/> + <blocker name='msa'/> + <blocker name='type'/> + </cpu> + <cpu type='tcg' name='z10EC.3' usable='no'> + <blocker name='cmm'/> + <blocker name='dateh2'/> + <blocker name='sthyi'/> + <blocker name='pfpo'/> + <blocker name='dfphp'/> + <blocker name='dfp'/> + <blocker name='ectg'/> + <blocker name='parseh'/> + <blocker name='hfpue'/> + <blocker name='hfpm'/> + <blocker name='csske'/> + <blocker name='srs'/> + <blocker name='edat'/> + <blocker name='asnlxr'/> + <blocker name='msa2'/> + <blocker name='msa1'/> + <blocker name='msa'/> + <blocker name='tods'/> + <blocker name='type'/> + </cpu> <cpu type='tcg' name='z900' usable='yes'/> - <cpu type='tcg' name='z9EC.3-base' usable='no'/> - <cpu type='tcg' name='z990.5-base' usable='no'/> - <cpu type='tcg' name='z10EC.2' usable='no'/> - <cpu type='tcg' name='z9BC.2' usable='no'/> - <cpu type='tcg' name='z10EC' usable='no'/> - <cpu type='tcg' name='z990.3-base' usable='no'/> - <cpu type='tcg' name='z14' usable='no'/> - <cpu type='tcg' name='z13s' usable='no'/> - <cpu type='tcg' name='z10EC.3-base' usable='no'/> - <cpu type='tcg' name='zEC12.2-base' usable='no'/> - <cpu type='tcg' name='z890.3-base' usable='no'/> - <cpu type='tcg' name='z9EC.3' usable='no'/> - <cpu type='tcg' name='z990.5' usable='no'/> - <cpu type='tcg' name='z13' usable='no'/> - <cpu type='tcg' name='z13s-base' usable='no'/> - <cpu type='tcg' name='z14-base' usable='no'/> - <cpu type='tcg' name='z9EC.2' usable='no'/> - <cpu type='tcg' name='z990.4' usable='no'/> - <cpu type='tcg' name='zEC12-base' usable='no'/> - <cpu type='tcg' name='z9EC.2-base' usable='no'/> - <cpu type='tcg' name='zBC12' usable='no'/> - <cpu type='tcg' name='z196.2' usable='no'/> - <cpu type='tcg' name='z990.3' usable='no'/> - <cpu type='tcg' name='z990.2-base' usable='no'/> - <cpu type='tcg' name='z900.3-base' usable='no'/> - <cpu type='tcg' name='z890.3' usable='no'/> - <cpu type='tcg' name='z10EC.2-base' usable='no'/> - <cpu type='tcg' name='z990.2' usable='no'/> - <cpu type='tcg' name='z890.2' usable='no'/> - <cpu type='tcg' name='zBC12-base' usable='no'/> - <cpu type='tcg' name='z800-base' usable='no'/> - <cpu type='tcg' name='zEC12' usable='no'/> - <cpu type='tcg' name='z9BC.2-base' usable='no'/> - <cpu type='tcg' name='z9BC' usable='no'/> - <cpu type='tcg' name='z10BC.2-base' usable='no'/> - <cpu type='tcg' name='z990.4-base' usable='no'/> + <cpu type='tcg' name='z9EC.3-base' usable='no'> + <blocker name='dateh2'/> + <blocker name='hfpue'/> + <blocker name='hfpm'/> + <blocker name='srs'/> + <blocker name='asnlxr'/> + <blocker name='msa'/> + <blocker name='tods'/> + <blocker name='type'/> + </cpu> + <cpu type='tcg' name='z990.5-base' usable='no'> + <blocker name='hfpm'/> + <blocker name='msa'/> + <blocker name='type'/> + </cpu> + <cpu type='tcg' name='z10EC.2' usable='no'> + <blocker name='cmm'/> + <blocker name='dateh2'/> + <blocker name='sthyi'/> + <blocker name='pfpo'/> + <blocker name='dfphp'/> + <blocker name='dfp'/> + <blocker name='ectg'/> + <blocker name='parseh'/> + <blocker name='hfpue'/> + <blocker name='hfpm'/> + <blocker name='csske'/> + <blocker name='srs'/> + <blocker name='edat'/> + <blocker name='asnlxr'/> + <blocker name='msa2'/> + <blocker name='msa1'/> + <blocker name='msa'/> + <blocker name='tods'/> + <blocker name='type'/> + </cpu> + <cpu type='tcg' name='z9BC.2' usable='no'> + <blocker name='cmm'/> + <blocker name='dateh2'/> + <blocker name='sthyi'/> + <blocker name='hfpue'/> + <blocker name='hfpm'/> + <blocker name='srs'/> + <blocker name='asnlxr'/> + <blocker name='msa1'/> + <blocker name='msa'/> + <blocker name='tods'/> + <blocker name='type'/> + </cpu> + <cpu type='tcg' name='z10EC' usable='no'> + <blocker name='cmm'/> + <blocker name='dateh2'/> + <blocker name='sthyi'/> + <blocker name='pfpo'/> + <blocker name='dfphp'/> + <blocker name='dfp'/> + <blocker name='ectg'/> + <blocker name='parseh'/> + <blocker name='hfpue'/> + <blocker name='hfpm'/> + <blocker name='csske'/> + <blocker name='srs'/> + <blocker name='edat'/> + <blocker name='asnlxr'/> + <blocker name='msa2'/> + <blocker name='msa1'/> + <blocker name='msa'/> + <blocker name='tods'/> + <blocker name='type'/> + </cpu> + <cpu type='tcg' name='z990.3-base' usable='no'> + <blocker name='hfpm'/> + <blocker name='msa'/> + <blocker name='type'/> + </cpu> + <cpu type='tcg' name='z14' usable='no'> + <blocker name='cmm'/> + <blocker name='dateh2'/> + <blocker name='esop'/> + <blocker name='vxeh'/> + <blocker name='vxpd'/> + <blocker name='gs'/> + <blocker name='sea_esop2'/> + <blocker name='iep'/> + <blocker name='vx'/> + <blocker name='dfppc'/> + <blocker name='edat2'/> + <blocker name='aefsi'/> + <blocker name='sthyi'/> + <blocker name='te'/> + <blocker name='ais'/> + <blocker name='aen'/> + <blocker name='zpci'/> + <blocker name='ri'/> + <blocker name='tsi'/> + <blocker name='sema'/> + <blocker name='minste2'/> + <blocker name='eec'/> + <blocker name='iacc2'/> + <blocker name='cte'/> + <blocker name='dfpzc'/> + <blocker name='cmpsceh'/> + <blocker name='pfpo'/> + <blocker name='dfphp'/> + <blocker name='dfp'/> + <blocker name='sprogp'/> + <blocker name='opc'/> + <blocker name='fpe'/> + <blocker name='emon'/> + <blocker name='ectg'/> + <blocker name='parseh'/> + <blocker name='hfpue'/> + <blocker name='hfpm'/> + <blocker name='nonqks'/> + <blocker name='ipter'/> + <blocker name='csske'/> + <blocker name='srs'/> + <blocker name='edat'/> + <blocker name='asnlxr'/> + <blocker name='msa8'/> + <blocker name='msa7'/> + <blocker name='msa6'/> + <blocker name='msa5'/> + <blocker name='msa4'/> + <blocker name='msa3'/> + <blocker name='msa2'/> + <blocker name='msa1'/> + <blocker name='msa'/> + <blocker name='gen13ptff'/> + <blocker name='tods'/> + <blocker name='type'/> + </cpu> + <cpu type='tcg' name='z13s' usable='no'> + <blocker name='cmm'/> + <blocker name='dateh2'/> + <blocker name='esop'/> + <blocker name='sea_esop2'/> + <blocker name='vx'/> + <blocker name='dfppc'/> + <blocker name='edat2'/> + <blocker name='aefsi'/> + <blocker name='sthyi'/> + <blocker name='te'/> + <blocker name='aen'/> + <blocker name='zpci'/> + <blocker name='ri'/> + <blocker name='iacc2'/> + <blocker name='cte'/> + <blocker name='dfpzc'/> + <blocker name='cmpsceh'/> + <blocker name='pfpo'/> + <blocker name='dfphp'/> + <blocker name='dfp'/> + <blocker name='sprogp'/> + <blocker name='fpe'/> + <blocker name='emon'/> + <blocker name='ectg'/> + <blocker name='parseh'/> + <blocker name='hfpue'/> + <blocker name='hfpm'/> + <blocker name='nonqks'/> + <blocker name='ipter'/> + <blocker name='csske'/> + <blocker name='srs'/> + <blocker name='edat'/> + <blocker name='asnlxr'/> + <blocker name='msa5'/> + <blocker name='msa4'/> + <blocker name='msa3'/> + <blocker name='msa2'/> + <blocker name='msa1'/> + <blocker name='msa'/> + <blocker name='gen13ptff'/> + <blocker name='tods'/> + <blocker name='type'/> + </cpu> + <cpu type='tcg' name='z10EC.3-base' usable='no'> + <blocker name='dateh2'/> + <blocker name='pfpo'/> + <blocker name='dfphp'/> + <blocker name='dfp'/> + <blocker name='ectg'/> + <blocker name='parseh'/> + <blocker name='hfpue'/> + <blocker name='hfpm'/> + <blocker name='csske'/> + <blocker name='srs'/> + <blocker name='asnlxr'/> + <blocker name='msa'/> + <blocker name='tods'/> + <blocker name='type'/> + </cpu> + <cpu type='tcg' name='zEC12.2-base' usable='no'> + <blocker name='dateh2'/> + <blocker name='iacc2'/> + <blocker name='dfpzc'/> + <blocker name='cmpsceh'/> + <blocker name='pfpo'/> + <blocker name='dfphp'/> + <blocker name='dfp'/> + <blocker name='sprogp'/> + <blocker name='fpe'/> + <blocker name='emon'/> + <blocker name='ectg'/> + <blocker name='parseh'/> + <blocker name='hfpue'/> + <blocker name='hfpm'/> + <blocker name='nonqks'/> + <blocker name='csske'/> + <blocker name='srs'/> + <blocker name='asnlxr'/> + <blocker name='msa'/> + <blocker name='tods'/> + <blocker name='type'/> + </cpu> + <cpu type='tcg' name='z890.3-base' usable='no'> + <blocker name='hfpm'/> + <blocker name='msa'/> + <blocker name='type'/> + </cpu> + <cpu type='tcg' name='z9EC.3' usable='no'> + <blocker name='cmm'/> + <blocker name='dateh2'/> + <blocker name='sthyi'/> + <blocker name='hfpue'/> + <blocker name='hfpm'/> + <blocker name='srs'/> + <blocker name='asnlxr'/> + <blocker name='msa1'/> + <blocker name='msa'/> + <blocker name='tods'/> + <blocker name='type'/> + </cpu> + <cpu type='tcg' name='z990.5' usable='no'> + <blocker name='hfpm'/> + <blocker name='msa'/> + <blocker name='type'/> + </cpu> + <cpu type='tcg' name='z13' usable='no'> + <blocker name='cmm'/> + <blocker name='dateh2'/> + <blocker name='esop'/> + <blocker name='sea_esop2'/> + <blocker name='vx'/> + <blocker name='dfppc'/> + <blocker name='edat2'/> + <blocker name='aefsi'/> + <blocker name='sthyi'/> + <blocker name='te'/> + <blocker name='aen'/> + <blocker name='zpci'/> + <blocker name='ri'/> + <blocker name='iacc2'/> + <blocker name='cte'/> + <blocker name='dfpzc'/> + <blocker name='cmpsceh'/> + <blocker name='pfpo'/> + <blocker name='dfphp'/> + <blocker name='dfp'/> + <blocker name='sprogp'/> + <blocker name='fpe'/> + <blocker name='emon'/> + <blocker name='ectg'/> + <blocker name='parseh'/> + <blocker name='hfpue'/> + <blocker name='hfpm'/> + <blocker name='nonqks'/> + <blocker name='ipter'/> + <blocker name='csske'/> + <blocker name='srs'/> + <blocker name='edat'/> + <blocker name='asnlxr'/> + <blocker name='msa5'/> + <blocker name='msa4'/> + <blocker name='msa3'/> + <blocker name='msa2'/> + <blocker name='msa1'/> + <blocker name='msa'/> + <blocker name='gen13ptff'/> + <blocker name='tods'/> + <blocker name='type'/> + </cpu> + <cpu type='tcg' name='z13s-base' usable='no'> + <blocker name='dateh2'/> + <blocker name='dfppc'/> + <blocker name='iacc2'/> + <blocker name='dfpzc'/> + <blocker name='cmpsceh'/> + <blocker name='pfpo'/> + <blocker name='dfphp'/> + <blocker name='dfp'/> + <blocker name='sprogp'/> + <blocker name='fpe'/> + <blocker name='emon'/> + <blocker name='ectg'/> + <blocker name='parseh'/> + <blocker name='hfpue'/> + <blocker name='hfpm'/> + <blocker name='nonqks'/> + <blocker name='csske'/> + <blocker name='srs'/> + <blocker name='asnlxr'/> + <blocker name='msa'/> + <blocker name='gen13ptff'/> + <blocker name='tods'/> + <blocker name='type'/> + </cpu> + <cpu type='tcg' name='z14-base' usable='no'> + <blocker name='dateh2'/> + <blocker name='dfppc'/> + <blocker name='tsi'/> + <blocker name='sema'/> + <blocker name='minste2'/> + <blocker name='eec'/> + <blocker name='iacc2'/> + <blocker name='dfpzc'/> + <blocker name='cmpsceh'/> + <blocker name='pfpo'/> + <blocker name='dfphp'/> + <blocker name='dfp'/> + <blocker name='sprogp'/> + <blocker name='opc'/> + <blocker name='fpe'/> + <blocker name='emon'/> + <blocker name='ectg'/> + <blocker name='parseh'/> + <blocker name='hfpue'/> + <blocker name='hfpm'/> + <blocker name='nonqks'/> + <blocker name='csske'/> + <blocker name='srs'/> + <blocker name='asnlxr'/> + <blocker name='msa'/> + <blocker name='gen13ptff'/> + <blocker name='tods'/> + <blocker name='type'/> + </cpu> + <cpu type='tcg' name='z9EC.2' usable='no'> + <blocker name='cmm'/> + <blocker name='dateh2'/> + <blocker name='sthyi'/> + <blocker name='hfpue'/> + <blocker name='hfpm'/> + <blocker name='srs'/> + <blocker name='asnlxr'/> + <blocker name='msa1'/> + <blocker name='msa'/> + <blocker name='tods'/> + <blocker name='type'/> + </cpu> + <cpu type='tcg' name='z990.4' usable='no'> + <blocker name='hfpm'/> + <blocker name='msa'/> + <blocker name='type'/> + </cpu> + <cpu type='tcg' name='zEC12-base' usable='no'> + <blocker name='dateh2'/> + <blocker name='iacc2'/> + <blocker name='dfpzc'/> + <blocker name='cmpsceh'/> + <blocker name='pfpo'/> + <blocker name='dfphp'/> + <blocker name='dfp'/> + <blocker name='sprogp'/> + <blocker name='fpe'/> + <blocker name='emon'/> + <blocker name='ectg'/> + <blocker name='parseh'/> + <blocker name='hfpue'/> + <blocker name='hfpm'/> + <blocker name='nonqks'/> + <blocker name='csske'/> + <blocker name='srs'/> + <blocker name='asnlxr'/> + <blocker name='msa'/> + <blocker name='tods'/> + <blocker name='type'/> + </cpu> + <cpu type='tcg' name='z9EC.2-base' usable='no'> + <blocker name='dateh2'/> + <blocker name='hfpue'/> + <blocker name='hfpm'/> + <blocker name='srs'/> + <blocker name='asnlxr'/> + <blocker name='msa'/> + <blocker name='tods'/> + <blocker name='type'/> + </cpu> + <cpu type='tcg' name='zBC12' usable='no'> + <blocker name='cmm'/> + <blocker name='dateh2'/> + <blocker name='esop'/> + <blocker name='sea_esop2'/> + <blocker name='edat2'/> + <blocker name='aefsi'/> + <blocker name='sthyi'/> + <blocker name='te'/> + <blocker name='aen'/> + <blocker name='zpci'/> + <blocker name='ri'/> + <blocker name='iacc2'/> + <blocker name='cte'/> + <blocker name='dfpzc'/> + <blocker name='cmpsceh'/> + <blocker name='pfpo'/> + <blocker name='dfphp'/> + <blocker name='dfp'/> + <blocker name='sprogp'/> + <blocker name='fpe'/> + <blocker name='emon'/> + <blocker name='ectg'/> + <blocker name='parseh'/> + <blocker name='hfpue'/> + <blocker name='hfpm'/> + <blocker name='nonqks'/> + <blocker name='ipter'/> + <blocker name='csske'/> + <blocker name='srs'/> + <blocker name='edat'/> + <blocker name='asnlxr'/> + <blocker name='msa4'/> + <blocker name='msa3'/> + <blocker name='msa2'/> + <blocker name='msa1'/> + <blocker name='msa'/> + <blocker name='tods'/> + <blocker name='type'/> + </cpu> + <cpu type='tcg' name='z196.2' usable='no'> + <blocker name='cmm'/> + <blocker name='dateh2'/> + <blocker name='aefsi'/> + <blocker name='sthyi'/> + <blocker name='iacc2'/> + <blocker name='cmpsceh'/> + <blocker name='pfpo'/> + <blocker name='dfphp'/> + <blocker name='dfp'/> + <blocker name='sprogp'/> + <blocker name='fpe'/> + <blocker name='emon'/> + <blocker name='ectg'/> + <blocker name='parseh'/> + <blocker name='hfpue'/> + <blocker name='hfpm'/> + <blocker name='nonqks'/> + <blocker name='ipter'/> + <blocker name='csske'/> + <blocker name='srs'/> + <blocker name='edat'/> + <blocker name='asnlxr'/> + <blocker name='msa4'/> + <blocker name='msa3'/> + <blocker name='msa2'/> + <blocker name='msa1'/> + <blocker name='msa'/> + <blocker name='tods'/> + <blocker name='type'/> + </cpu> + <cpu type='tcg' name='z990.3' usable='no'> + <blocker name='hfpm'/> + <blocker name='msa'/> + <blocker name='type'/> + </cpu> + <cpu type='tcg' name='z990.2-base' usable='no'> + <blocker name='hfpm'/> + <blocker name='msa'/> + <blocker name='type'/> + </cpu> + <cpu type='tcg' name='z900.3-base' usable='no'> + <blocker name='type'/> + </cpu> + <cpu type='tcg' name='z890.3' usable='no'> + <blocker name='hfpm'/> + <blocker name='msa'/> + <blocker name='type'/> + </cpu> + <cpu type='tcg' name='z10EC.2-base' usable='no'> + <blocker name='dateh2'/> + <blocker name='pfpo'/> + <blocker name='dfphp'/> + <blocker name='dfp'/> + <blocker name='ectg'/> + <blocker name='parseh'/> + <blocker name='hfpue'/> + <blocker name='hfpm'/> + <blocker name='csske'/> + <blocker name='srs'/> + <blocker name='asnlxr'/> + <blocker name='msa'/> + <blocker name='tods'/> + <blocker name='type'/> + </cpu> + <cpu type='tcg' name='z990.2' usable='no'> + <blocker name='hfpm'/> + <blocker name='msa'/> + <blocker name='type'/> + </cpu> + <cpu type='tcg' name='z890.2' usable='no'> + <blocker name='hfpm'/> + <blocker name='msa'/> + <blocker name='type'/> + </cpu> + <cpu type='tcg' name='zBC12-base' usable='no'> + <blocker name='dateh2'/> + <blocker name='iacc2'/> + <blocker name='dfpzc'/> + <blocker name='cmpsceh'/> + <blocker name='pfpo'/> + <blocker name='dfphp'/> + <blocker name='dfp'/> + <blocker name='sprogp'/> + <blocker name='fpe'/> + <blocker name='emon'/> + <blocker name='ectg'/> + <blocker name='parseh'/> + <blocker name='hfpue'/> + <blocker name='hfpm'/> + <blocker name='nonqks'/> + <blocker name='csske'/> + <blocker name='srs'/> + <blocker name='asnlxr'/> + <blocker name='msa'/> + <blocker name='tods'/> + <blocker name='type'/> + </cpu> + <cpu type='tcg' name='z800-base' usable='no'> + <blocker name='type'/> + </cpu> + <cpu type='tcg' name='zEC12' usable='no'> + <blocker name='cmm'/> + <blocker name='dateh2'/> + <blocker name='esop'/> + <blocker name='sea_esop2'/> + <blocker name='edat2'/> + <blocker name='aefsi'/> + <blocker name='sthyi'/> + <blocker name='te'/> + <blocker name='aen'/> + <blocker name='zpci'/> + <blocker name='ri'/> + <blocker name='iacc2'/> + <blocker name='cte'/> + <blocker name='dfpzc'/> + <blocker name='cmpsceh'/> + <blocker name='pfpo'/> + <blocker name='dfphp'/> + <blocker name='dfp'/> + <blocker name='sprogp'/> + <blocker name='fpe'/> + <blocker name='emon'/> + <blocker name='ectg'/> + <blocker name='parseh'/> + <blocker name='hfpue'/> + <blocker name='hfpm'/> + <blocker name='nonqks'/> + <blocker name='ipter'/> + <blocker name='csske'/> + <blocker name='srs'/> + <blocker name='edat'/> + <blocker name='asnlxr'/> + <blocker name='msa4'/> + <blocker name='msa3'/> + <blocker name='msa2'/> + <blocker name='msa1'/> + <blocker name='msa'/> + <blocker name='tods'/> + <blocker name='type'/> + </cpu> + <cpu type='tcg' name='z9BC.2-base' usable='no'> + <blocker name='dateh2'/> + <blocker name='hfpue'/> + <blocker name='hfpm'/> + <blocker name='srs'/> + <blocker name='asnlxr'/> + <blocker name='msa'/> + <blocker name='tods'/> + <blocker name='type'/> + </cpu> + <cpu type='tcg' name='z9BC' usable='no'> + <blocker name='cmm'/> + <blocker name='dateh2'/> + <blocker name='sthyi'/> + <blocker name='hfpue'/> + <blocker name='hfpm'/> + <blocker name='srs'/> + <blocker name='asnlxr'/> + <blocker name='msa1'/> + <blocker name='msa'/> + <blocker name='tods'/> + <blocker name='type'/> + </cpu> + <cpu type='tcg' name='z10BC.2-base' usable='no'> + <blocker name='dateh2'/> + <blocker name='pfpo'/> + <blocker name='dfphp'/> + <blocker name='dfp'/> + <blocker name='ectg'/> + <blocker name='parseh'/> + <blocker name='hfpue'/> + <blocker name='hfpm'/> + <blocker name='csske'/> + <blocker name='srs'/> + <blocker name='asnlxr'/> + <blocker name='msa'/> + <blocker name='tods'/> + <blocker name='type'/> + </cpu> + <cpu type='tcg' name='z990.4-base' usable='no'> + <blocker name='hfpm'/> + <blocker name='msa'/> + <blocker name='type'/> + </cpu> <cpu type='tcg' name='qemu' usable='yes'/> - <cpu type='tcg' name='z10BC-base' usable='no'/> - <cpu type='tcg' name='z9BC-base' usable='no'/> - <cpu type='tcg' name='z800' usable='no'/> - <cpu type='tcg' name='z890.2-base' usable='no'/> - <cpu type='tcg' name='z13.2' usable='no'/> - <cpu type='tcg' name='z114-base' usable='no'/> - <cpu type='tcg' name='z196-base' usable='no'/> - <cpu type='tcg' name='z13-base' usable='no'/> - <cpu type='tcg' name='z890' usable='no'/> + <cpu type='tcg' name='z10BC-base' usable='no'> + <blocker name='dateh2'/> + <blocker name='pfpo'/> + <blocker name='dfphp'/> + <blocker name='dfp'/> + <blocker name='ectg'/> + <blocker name='parseh'/> + <blocker name='hfpue'/> + <blocker name='hfpm'/> + <blocker name='csske'/> + <blocker name='srs'/> + <blocker name='asnlxr'/> + <blocker name='msa'/> + <blocker name='tods'/> + <blocker name='type'/> + </cpu> + <cpu type='tcg' name='z9BC-base' usable='no'> + <blocker name='dateh2'/> + <blocker name='hfpue'/> + <blocker name='hfpm'/> + <blocker name='srs'/> + <blocker name='asnlxr'/> + <blocker name='msa'/> + <blocker name='tods'/> + <blocker name='type'/> + </cpu> + <cpu type='tcg' name='z800' usable='no'> + <blocker name='type'/> + </cpu> + <cpu type='tcg' name='z890.2-base' usable='no'> + <blocker name='hfpm'/> + <blocker name='msa'/> + <blocker name='type'/> + </cpu> + <cpu type='tcg' name='z13.2' usable='no'> + <blocker name='cmm'/> + <blocker name='dateh2'/> + <blocker name='esop'/> + <blocker name='sea_esop2'/> + <blocker name='vx'/> + <blocker name='dfppc'/> + <blocker name='edat2'/> + <blocker name='aefsi'/> + <blocker name='sthyi'/> + <blocker name='te'/> + <blocker name='aen'/> + <blocker name='zpci'/> + <blocker name='ri'/> + <blocker name='iacc2'/> + <blocker name='cte'/> + <blocker name='dfpzc'/> + <blocker name='cmpsceh'/> + <blocker name='pfpo'/> + <blocker name='dfphp'/> + <blocker name='dfp'/> + <blocker name='sprogp'/> + <blocker name='fpe'/> + <blocker name='emon'/> + <blocker name='ectg'/> + <blocker name='parseh'/> + <blocker name='hfpue'/> + <blocker name='hfpm'/> + <blocker name='nonqks'/> + <blocker name='ipter'/> + <blocker name='csske'/> + <blocker name='srs'/> + <blocker name='edat'/> + <blocker name='asnlxr'/> + <blocker name='msa5'/> + <blocker name='msa4'/> + <blocker name='msa3'/> + <blocker name='msa2'/> + <blocker name='msa1'/> + <blocker name='msa'/> + <blocker name='gen13ptff'/> + <blocker name='tods'/> + <blocker name='type'/> + </cpu> + <cpu type='tcg' name='z114-base' usable='no'> + <blocker name='dateh2'/> + <blocker name='iacc2'/> + <blocker name='cmpsceh'/> + <blocker name='pfpo'/> + <blocker name='dfphp'/> + <blocker name='dfp'/> + <blocker name='sprogp'/> + <blocker name='fpe'/> + <blocker name='emon'/> + <blocker name='ectg'/> + <blocker name='parseh'/> + <blocker name='hfpue'/> + <blocker name='hfpm'/> + <blocker name='nonqks'/> + <blocker name='csske'/> + <blocker name='srs'/> + <blocker name='asnlxr'/> + <blocker name='msa'/> + <blocker name='tods'/> + <blocker name='type'/> + </cpu> + <cpu type='tcg' name='z196-base' usable='no'> + <blocker name='dateh2'/> + <blocker name='iacc2'/> + <blocker name='cmpsceh'/> + <blocker name='pfpo'/> + <blocker name='dfphp'/> + <blocker name='dfp'/> + <blocker name='sprogp'/> + <blocker name='fpe'/> + <blocker name='emon'/> + <blocker name='ectg'/> + <blocker name='parseh'/> + <blocker name='hfpue'/> + <blocker name='hfpm'/> + <blocker name='nonqks'/> + <blocker name='csske'/> + <blocker name='srs'/> + <blocker name='asnlxr'/> + <blocker name='msa'/> + <blocker name='tods'/> + <blocker name='type'/> + </cpu> + <cpu type='tcg' name='z13-base' usable='no'> + <blocker name='dateh2'/> + <blocker name='dfppc'/> + <blocker name='iacc2'/> + <blocker name='dfpzc'/> + <blocker name='cmpsceh'/> + <blocker name='pfpo'/> + <blocker name='dfphp'/> + <blocker name='dfp'/> + <blocker name='sprogp'/> + <blocker name='fpe'/> + <blocker name='emon'/> + <blocker name='ectg'/> + <blocker name='parseh'/> + <blocker name='hfpue'/> + <blocker name='hfpm'/> + <blocker name='nonqks'/> + <blocker name='csske'/> + <blocker name='srs'/> + <blocker name='asnlxr'/> + <blocker name='msa'/> + <blocker name='gen13ptff'/> + <blocker name='tods'/> + <blocker name='type'/> + </cpu> + <cpu type='tcg' name='z890' usable='no'> + <blocker name='hfpm'/> + <blocker name='msa'/> + <blocker name='type'/> + </cpu> <machine name='s390-ccw-virtio-2.10' alias='s390-ccw-virtio' maxCpus='248'/> <machine name='s390-ccw-virtio-2.7' maxCpus='248'/> <machine name='s390-ccw-virtio-2.6' maxCpus='248'/> diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml index 8a31431c09..1a4a73e0fb 100644 --- a/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml @@ -700,7 +700,14 @@ <cpu type='kvm' name='base' usable='yes'/> <cpu type='kvm' name='qemu64' usable='yes'/> <cpu type='kvm' name='qemu32' usable='yes'/> - <cpu type='kvm' name='phenom' usable='no'/> + <cpu type='kvm' name='phenom' usable='no'> + <blocker name='mmxext'/> + <blocker name='fxsr-opt'/> + <blocker name='3dnowext'/> + <blocker name='3dnow'/> + <blocker name='sse4a'/> + <blocker name='npt'/> + </cpu> <cpu type='kvm' name='pentium3' usable='yes'/> <cpu type='kvm' name='pentium2' usable='yes'/> <cpu type='kvm' name='pentium' usable='yes'/> @@ -709,31 +716,104 @@ <cpu type='kvm' name='kvm32' usable='yes'/> <cpu type='kvm' name='coreduo' usable='yes'/> <cpu type='kvm' name='core2duo' usable='yes'/> - <cpu type='kvm' name='athlon' usable='no'/> + <cpu type='kvm' name='athlon' usable='no'> + <blocker name='mmxext'/> + <blocker name='3dnowext'/> + <blocker name='3dnow'/> + </cpu> <cpu type='kvm' name='Westmere' usable='yes'/> - <cpu type='kvm' name='Skylake-Server' usable='no'/> - <cpu type='kvm' name='Skylake-Client' usable='no'/> + <cpu type='kvm' name='Skylake-Server' usable='no'> + <blocker name='hle'/> + <blocker name='rtm'/> + <blocker name='mpx'/> + <blocker name='avx512f'/> + <blocker name='avx512dq'/> + <blocker name='rdseed'/> + <blocker name='adx'/> + <blocker name='smap'/> + <blocker name='clwb'/> + <blocker name='avx512cd'/> + <blocker name='avx512bw'/> + <blocker name='avx512vl'/> + <blocker name='3dnowprefetch'/> + <blocker name='xsavec'/> + <blocker name='xgetbv1'/> + <blocker name='mpx'/> + <blocker name='mpx'/> + <blocker name='avx512f'/> + <blocker name='avx512f'/> + <blocker name='avx512f'/> + </cpu> + <cpu type='kvm' name='Skylake-Client' usable='no'> + <blocker name='hle'/> + <blocker name='rtm'/> + <blocker name='mpx'/> + <blocker name='rdseed'/> + <blocker name='adx'/> + <blocker name='smap'/> + <blocker name='3dnowprefetch'/> + <blocker name='xsavec'/> + <blocker name='xgetbv1'/> + <blocker name='mpx'/> + <blocker name='mpx'/> + </cpu> <cpu type='kvm' name='SandyBridge' usable='yes'/> <cpu type='kvm' name='Penryn' usable='yes'/> - <cpu type='kvm' name='Opteron_G5' usable='no'/> - <cpu type='kvm' name='Opteron_G4' usable='no'/> - <cpu type='kvm' name='Opteron_G3' usable='no'/> + <cpu type='kvm' name='Opteron_G5' usable='no'> + <blocker name='sse4a'/> + <blocker name='misalignsse'/> + <blocker name='3dnowprefetch'/> + <blocker name='xop'/> + <blocker name='fma4'/> + <blocker name='tbm'/> + </cpu> + <cpu type='kvm' name='Opteron_G4' usable='no'> + <blocker name='sse4a'/> + <blocker name='misalignsse'/> + <blocker name='3dnowprefetch'/> + <blocker name='xop'/> + <blocker name='fma4'/> + </cpu> + <cpu type='kvm' name='Opteron_G3' usable='no'> + <blocker name='sse4a'/> + <blocker name='misalignsse'/> + </cpu> <cpu type='kvm' name='Opteron_G2' usable='yes'/> <cpu type='kvm' name='Opteron_G1' usable='yes'/> <cpu type='kvm' name='Nehalem' usable='yes'/> <cpu type='kvm' name='IvyBridge' usable='yes'/> - <cpu type='kvm' name='Haswell' usable='no'/> + <cpu type='kvm' name='Haswell' usable='no'> + <blocker name='hle'/> + <blocker name='rtm'/> + </cpu> <cpu type='kvm' name='Haswell-noTSX' usable='yes'/> <cpu type='kvm' name='Conroe' usable='yes'/> - <cpu type='kvm' name='Broadwell' usable='no'/> - <cpu type='kvm' name='Broadwell-noTSX' usable='no'/> + <cpu type='kvm' name='Broadwell' usable='no'> + <blocker name='hle'/> + <blocker name='rtm'/> + <blocker name='rdseed'/> + <blocker name='adx'/> + <blocker name='smap'/> + <blocker name='3dnowprefetch'/> + </cpu> + <cpu type='kvm' name='Broadwell-noTSX' usable='no'> + <blocker name='rdseed'/> + <blocker name='adx'/> + <blocker name='smap'/> + <blocker name='3dnowprefetch'/> + </cpu> <cpu type='kvm' name='486' usable='yes'/> <cpu type='tcg' name='max' usable='yes'/> - <cpu type='tcg' name='host' usable='no'/> + <cpu type='tcg' name='host' usable='no'> + <blocker name='kvm'/> + </cpu> <cpu type='tcg' name='base' usable='yes'/> <cpu type='tcg' name='qemu64' usable='yes'/> <cpu type='tcg' name='qemu32' usable='yes'/> - <cpu type='tcg' name='phenom' usable='no'/> + <cpu type='tcg' name='phenom' usable='no'> + <blocker name='fxsr-opt'/> + <blocker name='npt'/> + </cpu> <cpu type='tcg' name='pentium3' usable='yes'/> <cpu type='tcg' name='pentium2' usable='yes'/> <cpu type='tcg' name='pentium' usable='yes'/> @@ -744,22 +824,132 @@ <cpu type='tcg' name='core2duo' usable='yes'/> <cpu type='tcg' name='athlon' usable='yes'/> <cpu type='tcg' name='Westmere' usable='yes'/> - <cpu type='tcg' name='Skylake-Server' usable='no'/> - <cpu type='tcg' name='Skylake-Client' usable='no'/> - <cpu type='tcg' name='SandyBridge' usable='no'/> + <cpu type='tcg' name='Skylake-Server' usable='no'> + <blocker name='fma'/> + <blocker name='pcid'/> + <blocker name='x2apic'/> + <blocker name='tsc-deadline'/> + <blocker name='avx'/> + <blocker name='f16c'/> + <blocker name='rdrand'/> + <blocker name='hle'/> + <blocker name='avx2'/> + <blocker name='invpcid'/> + <blocker name='rtm'/> + <blocker name='avx512f'/> + <blocker name='avx512dq'/> + <blocker name='rdseed'/> + <blocker name='avx512cd'/> + <blocker name='avx512bw'/> + <blocker name='avx512vl'/> + <blocker name='3dnowprefetch'/> + <blocker name='xsavec'/> + </cpu> + <cpu type='tcg' name='Skylake-Client' usable='no'> + <blocker name='fma'/> + <blocker name='pcid'/> + <blocker name='x2apic'/> + <blocker name='tsc-deadline'/> + <blocker name='avx'/> + <blocker name='f16c'/> + <blocker name='rdrand'/> + <blocker name='hle'/> + <blocker name='avx2'/> + <blocker name='invpcid'/> + <blocker name='rtm'/> + <blocker name='rdseed'/> + <blocker name='3dnowprefetch'/> + <blocker name='xsavec'/> + </cpu> + <cpu type='tcg' name='SandyBridge' usable='no'> + <blocker name='x2apic'/> + <blocker name='tsc-deadline'/> + <blocker name='avx'/> + </cpu> <cpu type='tcg' name='Penryn' usable='yes'/> - <cpu type='tcg' name='Opteron_G5' usable='no'/> - <cpu type='tcg' name='Opteron_G4' usable='no'/> - <cpu type='tcg' name='Opteron_G3' usable='no'/> + <cpu type='tcg' name='Opteron_G5' usable='no'> + <blocker name='fma'/> + <blocker name='avx'/> + <blocker name='f16c'/> + <blocker name='misalignsse'/> + <blocker name='3dnowprefetch'/> + <blocker name='xop'/> + <blocker name='fma4'/> + <blocker name='tbm'/> + </cpu> + <cpu type='tcg' name='Opteron_G4' usable='no'> + <blocker name='avx'/> + <blocker name='misalignsse'/> + <blocker name='3dnowprefetch'/> + <blocker name='xop'/> + <blocker name='fma4'/> + </cpu> + <cpu type='tcg' name='Opteron_G3' usable='no'> + <blocker name='misalignsse'/> + </cpu> <cpu type='tcg' name='Opteron_G2' usable='yes'/> <cpu type='tcg' name='Opteron_G1' usable='yes'/> <cpu type='tcg' name='Nehalem' usable='yes'/> - <cpu type='tcg' name='IvyBridge' usable='no'/> - <cpu type='tcg' name='Haswell' usable='no'/> - <cpu type='tcg' name='Haswell-noTSX' usable='no'/> + <cpu type='tcg' name='IvyBridge' usable='no'> + <blocker name='x2apic'/> + <blocker name='tsc-deadline'/> + <blocker name='avx'/> + <blocker name='f16c'/> + <blocker name='rdrand'/> + </cpu> + <cpu type='tcg' name='Haswell' usable='no'> + <blocker name='fma'/> + <blocker name='pcid'/> + <blocker name='x2apic'/> + <blocker name='tsc-deadline'/> + <blocker name='avx'/> + <blocker name='f16c'/> + <blocker name='rdrand'/> + <blocker name='hle'/> + <blocker name='avx2'/> + <blocker name='invpcid'/> + <blocker name='rtm'/> + </cpu> + <cpu type='tcg' name='Haswell-noTSX' usable='no'> + <blocker name='fma'/> + <blocker name='pcid'/> + <blocker name='x2apic'/> + <blocker name='tsc-deadline'/> + <blocker name='avx'/> + <blocker name='f16c'/> + <blocker name='rdrand'/> + <blocker name='avx2'/> + <blocker name='invpcid'/> + </cpu> <cpu type='tcg' name='Conroe' usable='yes'/> - <cpu type='tcg' name='Broadwell' usable='no'/> - <cpu type='tcg' name='Broadwell-noTSX' usable='no'/> + <cpu type='tcg' name='Broadwell' usable='no'> + <blocker name='fma'/> + <blocker name='pcid'/> + <blocker name='x2apic'/> + <blocker name='tsc-deadline'/> + <blocker name='avx'/> + <blocker name='f16c'/> + <blocker name='rdrand'/> + <blocker name='hle'/> + <blocker name='avx2'/> + <blocker name='invpcid'/> + <blocker name='rtm'/> + <blocker name='rdseed'/> + <blocker name='3dnowprefetch'/> + </cpu> + <cpu type='tcg' name='Broadwell-noTSX' usable='no'> + <blocker name='fma'/> + <blocker name='pcid'/> + <blocker name='x2apic'/> + <blocker name='tsc-deadline'/> + <blocker name='avx'/> + <blocker name='f16c'/> + <blocker name='rdrand'/> + <blocker name='avx2'/> + <blocker name='invpcid'/> + <blocker name='rdseed'/> + <blocker name='3dnowprefetch'/> + </cpu> <cpu type='tcg' name='486' usable='yes'/> <machine name='pc-i440fx-2.10' alias='pc' hotplugCpus='yes' maxCpus='255'/> <machine name='pc-0.12' hotplugCpus='yes' maxCpus='255'/> diff --git a/tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml index 761f9d1415..7cea98cb36 100644 --- a/tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml @@ -216,7 +216,14 @@ <cpu type='kvm' name='host' usable='yes'/> <cpu type='kvm' name='qemu64' usable='yes'/> <cpu type='kvm' name='qemu32' usable='yes'/> - <cpu type='kvm' name='phenom' usable='no'/> + <cpu type='kvm' name='phenom' usable='no'> + <blocker name='mmxext'/> + <blocker name='fxsr-opt'/> + <blocker name='3dnowext'/> + <blocker name='3dnow'/> + <blocker name='sse4a'/> + <blocker name='npt'/> + </cpu> <cpu type='kvm' name='pentium3' usable='yes'/> <cpu type='kvm' name='pentium2' usable='yes'/> <cpu type='kvm' name='pentium' usable='yes'/> @@ -225,14 +232,32 @@ <cpu type='kvm' name='kvm32' usable='yes'/> <cpu type='kvm' name='coreduo' usable='yes'/> <cpu type='kvm' name='core2duo' usable='yes'/> - <cpu type='kvm' name='athlon' usable='no'/> + <cpu type='kvm' name='athlon' usable='no'> + <blocker name='mmxext'/> + <blocker name='3dnowext'/> + <blocker name='3dnow'/> + </cpu> <cpu type='kvm' name='Westmere' usable='yes'/> <cpu type='kvm' name='Skylake-Client' usable='yes'/> <cpu type='kvm' name='SandyBridge' usable='yes'/> <cpu type='kvm' name='Penryn' usable='yes'/> - <cpu type='kvm' name='Opteron_G5' usable='no'/> - <cpu type='kvm' name='Opteron_G4' usable='no'/> - <cpu type='kvm' name='Opteron_G3' usable='no'/> + <cpu type='kvm' name='Opteron_G5' usable='no'> + <blocker name='sse4a'/> + <blocker name='misalignsse'/> + <blocker name='xop'/> + <blocker name='fma4'/> + <blocker name='tbm'/> + </cpu> + <cpu type='kvm' name='Opteron_G4' usable='no'> + <blocker name='sse4a'/> + <blocker name='misalignsse'/> + <blocker name='xop'/> + <blocker name='fma4'/> + </cpu> + <cpu type='kvm' name='Opteron_G3' usable='no'> + <blocker name='sse4a'/> + <blocker name='misalignsse'/> + </cpu> <cpu type='kvm' name='Opteron_G2' usable='yes'/> <cpu type='kvm' name='Opteron_G1' usable='yes'/> <cpu type='kvm' name='Nehalem' usable='yes'/> @@ -243,10 +268,15 @@ <cpu type='kvm' name='Broadwell' usable='yes'/> <cpu type='kvm' name='Broadwell-noTSX' usable='yes'/> <cpu type='kvm' name='486' usable='yes'/> - <cpu type='tcg' name='host' usable='no'/> + <cpu type='tcg' name='host' usable='no'> + <blocker name='kvm'/> + </cpu> <cpu type='tcg' name='qemu64' usable='yes'/> <cpu type='tcg' name='qemu32' usable='yes'/> - <cpu type='tcg' name='phenom' usable='no'/> + <cpu type='tcg' name='phenom' usable='no'> + <blocker name='fxsr-opt'/> + <blocker name='npt'/> + </cpu> <cpu type='tcg' name='pentium3' usable='yes'/> <cpu type='tcg' name='pentium2' usable='yes'/> <cpu type='tcg' name='pentium' usable='yes'/> @@ -257,21 +287,111 @@ <cpu type='tcg' name='core2duo' usable='yes'/> <cpu type='tcg' name='athlon' usable='yes'/> <cpu type='tcg' name='Westmere' usable='yes'/> - <cpu type='tcg' name='Skylake-Client' usable='no'/> - <cpu type='tcg' name='SandyBridge' usable='no'/> + <cpu type='tcg' name='Skylake-Client' usable='no'> + <blocker name='fma'/> + <blocker name='pcid'/> + <blocker name='x2apic'/> + <blocker name='tsc-deadline'/> + <blocker name='avx'/> + <blocker name='f16c'/> + <blocker name='rdrand'/> + <blocker name='hle'/> + <blocker name='avx2'/> + <blocker name='invpcid'/> + <blocker name='rtm'/> + <blocker name='rdseed'/> + <blocker name='3dnowprefetch'/> + <blocker name='xsavec'/> + </cpu> + <cpu type='tcg' name='SandyBridge' usable='no'> + <blocker name='x2apic'/> + <blocker name='tsc-deadline'/> + <blocker name='avx'/> + </cpu> <cpu type='tcg' name='Penryn' usable='yes'/> - <cpu type='tcg' name='Opteron_G5' usable='no'/> - <cpu type='tcg' name='Opteron_G4' usable='no'/> - <cpu type='tcg' name='Opteron_G3' usable='no'/> + <cpu type='tcg' name='Opteron_G5' usable='no'> + <blocker name='fma'/> + <blocker name='avx'/> + <blocker name='f16c'/> + <blocker name='misalignsse'/> + <blocker name='3dnowprefetch'/> + <blocker name='xop'/> + <blocker name='fma4'/> + <blocker name='tbm'/> + </cpu> + <cpu type='tcg' name='Opteron_G4' usable='no'> + <blocker name='avx'/> + <blocker name='misalignsse'/> + <blocker name='3dnowprefetch'/> + <blocker name='xop'/> + <blocker name='fma4'/> + </cpu> + <cpu type='tcg' name='Opteron_G3' usable='no'> + <blocker name='misalignsse'/> + </cpu> <cpu type='tcg' name='Opteron_G2' usable='yes'/> <cpu type='tcg' name='Opteron_G1' usable='yes'/> <cpu type='tcg' name='Nehalem' usable='yes'/> - <cpu type='tcg' name='IvyBridge' usable='no'/> - <cpu type='tcg' name='Haswell' usable='no'/> - <cpu type='tcg' name='Haswell-noTSX' usable='no'/> + <cpu type='tcg' name='IvyBridge' usable='no'> + <blocker name='x2apic'/> + <blocker name='tsc-deadline'/> + <blocker name='avx'/> + <blocker name='f16c'/> + <blocker name='rdrand'/> + </cpu> + <cpu type='tcg' name='Haswell' usable='no'> + <blocker name='fma'/> + <blocker name='pcid'/> + <blocker name='x2apic'/> + <blocker name='tsc-deadline'/> + <blocker name='avx'/> + <blocker name='f16c'/> + <blocker name='rdrand'/> + <blocker name='hle'/> + <blocker name='avx2'/> + <blocker name='invpcid'/> + <blocker name='rtm'/> + </cpu> + <cpu type='tcg' name='Haswell-noTSX' usable='no'> + <blocker name='fma'/> + <blocker name='pcid'/> + <blocker name='x2apic'/> + <blocker name='tsc-deadline'/> + <blocker name='avx'/> + <blocker name='f16c'/> + <blocker name='rdrand'/> + <blocker name='avx2'/> + <blocker name='invpcid'/> + </cpu> <cpu type='tcg' name='Conroe' usable='yes'/> - <cpu type='tcg' name='Broadwell' usable='no'/> - <cpu type='tcg' name='Broadwell-noTSX' usable='no'/> + <cpu type='tcg' name='Broadwell' usable='no'> + <blocker name='fma'/> + <blocker name='pcid'/> + <blocker name='x2apic'/> + <blocker name='tsc-deadline'/> + <blocker name='avx'/> + <blocker name='f16c'/> + <blocker name='rdrand'/> + <blocker name='hle'/> + <blocker name='avx2'/> + <blocker name='invpcid'/> + <blocker name='rtm'/> + <blocker name='rdseed'/> + <blocker name='3dnowprefetch'/> + </cpu> + <cpu type='tcg' name='Broadwell-noTSX' usable='no'> + <blocker name='fma'/> + <blocker name='pcid'/> + <blocker name='x2apic'/> + <blocker name='tsc-deadline'/> + <blocker name='avx'/> + <blocker name='f16c'/> + <blocker name='rdrand'/> + <blocker name='avx2'/> + <blocker name='invpcid'/> + <blocker name='rdseed'/> + <blocker name='3dnowprefetch'/> + </cpu> <cpu type='tcg' name='486' usable='yes'/> <machine name='pc-i440fx-2.8' alias='pc' hotplugCpus='yes' maxCpus='255'/> <machine name='pc-0.12' hotplugCpus='yes' maxCpus='255'/> diff --git a/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml index 3641d03323..c54ac89929 100644 --- a/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml @@ -693,7 +693,14 @@ <cpu type='kvm' name='base' usable='yes'/> <cpu type='kvm' name='qemu64' usable='yes'/> <cpu type='kvm' name='qemu32' usable='yes'/> - <cpu type='kvm' name='phenom' usable='no'/> + <cpu type='kvm' name='phenom' usable='no'> + <blocker name='mmxext'/> + <blocker name='fxsr-opt'/> + <blocker name='3dnowext'/> + <blocker name='3dnow'/> + <blocker name='sse4a'/> + <blocker name='npt'/> + </cpu> <cpu type='kvm' name='pentium3' usable='yes'/> <cpu type='kvm' name='pentium2' usable='yes'/> <cpu type='kvm' name='pentium' usable='yes'/> @@ -702,14 +709,32 @@ <cpu type='kvm' name='kvm32' usable='yes'/> <cpu type='kvm' name='coreduo' usable='yes'/> <cpu type='kvm' name='core2duo' usable='yes'/> - <cpu type='kvm' name='athlon' usable='no'/> + <cpu type='kvm' name='athlon' usable='no'> + <blocker name='mmxext'/> + <blocker name='3dnowext'/> + <blocker name='3dnow'/> + </cpu> <cpu type='kvm' name='Westmere' usable='yes'/> <cpu type='kvm' name='Skylake-Client' usable='yes'/> <cpu type='kvm' name='SandyBridge' usable='yes'/> <cpu type='kvm' name='Penryn' usable='yes'/> - <cpu type='kvm' name='Opteron_G5' usable='no'/> - <cpu type='kvm' name='Opteron_G4' usable='no'/> - <cpu type='kvm' name='Opteron_G3' usable='no'/> + <cpu type='kvm' name='Opteron_G5' usable='no'> + <blocker name='sse4a'/> + <blocker name='misalignsse'/> + <blocker name='xop'/> + <blocker name='fma4'/> + <blocker name='tbm'/> + </cpu> + <cpu type='kvm' name='Opteron_G4' usable='no'> + <blocker name='sse4a'/> + <blocker name='misalignsse'/> + <blocker name='xop'/> + <blocker name='fma4'/> + </cpu> + <cpu type='kvm' name='Opteron_G3' usable='no'> + <blocker name='sse4a'/> + <blocker name='misalignsse'/> + </cpu> <cpu type='kvm' name='Opteron_G2' usable='yes'/> <cpu type='kvm' name='Opteron_G1' usable='yes'/> <cpu type='kvm' name='Nehalem' usable='yes'/> @@ -721,11 +746,16 @@ <cpu type='kvm' name='Broadwell-noTSX' usable='yes'/> <cpu type='kvm' name='486' usable='yes'/> <cpu type='tcg' name='max' usable='yes'/> - <cpu type='tcg' name='host' usable='no'/> + <cpu type='tcg' name='host' usable='no'> + <blocker name='kvm'/> + </cpu> <cpu type='tcg' name='base' usable='yes'/> <cpu type='tcg' name='qemu64' usable='yes'/> <cpu type='tcg' name='qemu32' usable='yes'/> - <cpu type='tcg' name='phenom' usable='no'/> + <cpu type='tcg' name='phenom' usable='no'> + <blocker name='fxsr-opt'/> + <blocker name='npt'/> + </cpu> <cpu type='tcg' name='pentium3' usable='yes'/> <cpu type='tcg' name='pentium2' usable='yes'/> <cpu type='tcg' name='pentium' usable='yes'/> @@ -736,21 +766,111 @@ <cpu type='tcg' name='core2duo' usable='yes'/> <cpu type='tcg' name='athlon' usable='yes'/> <cpu type='tcg' name='Westmere' usable='yes'/> - <cpu type='tcg' name='Skylake-Client' usable='no'/> - <cpu type='tcg' name='SandyBridge' usable='no'/> + <cpu type='tcg' name='Skylake-Client' usable='no'> + <blocker name='fma'/> + <blocker name='pcid'/> + <blocker name='x2apic'/> + <blocker name='tsc-deadline'/> + <blocker name='avx'/> + <blocker name='f16c'/> + <blocker name='rdrand'/> + <blocker name='hle'/> + <blocker name='avx2'/> + <blocker name='invpcid'/> + <blocker name='rtm'/> + <blocker name='rdseed'/> + <blocker name='3dnowprefetch'/> + <blocker name='xsavec'/> + </cpu> + <cpu type='tcg' name='SandyBridge' usable='no'> + <blocker name='x2apic'/> + <blocker name='tsc-deadline'/> + <blocker name='avx'/> + </cpu> <cpu type='tcg' name='Penryn' usable='yes'/> - <cpu type='tcg' name='Opteron_G5' usable='no'/> - <cpu type='tcg' name='Opteron_G4' usable='no'/> - <cpu type='tcg' name='Opteron_G3' usable='no'/> + <cpu type='tcg' name='Opteron_G5' usable='no'> + <blocker name='fma'/> + <blocker name='avx'/> + <blocker name='f16c'/> + <blocker name='misalignsse'/> + <blocker name='3dnowprefetch'/> + <blocker name='xop'/> + <blocker name='fma4'/> + <blocker name='tbm'/> + </cpu> + <cpu type='tcg' name='Opteron_G4' usable='no'> + <blocker name='avx'/> + <blocker name='misalignsse'/> + <blocker name='3dnowprefetch'/> + <blocker name='xop'/> + <blocker name='fma4'/> + </cpu> + <cpu type='tcg' name='Opteron_G3' usable='no'> + <blocker name='misalignsse'/> + </cpu> <cpu type='tcg' name='Opteron_G2' usable='yes'/> <cpu type='tcg' name='Opteron_G1' usable='yes'/> <cpu type='tcg' name='Nehalem' usable='yes'/> - <cpu type='tcg' name='IvyBridge' usable='no'/> - <cpu type='tcg' name='Haswell' usable='no'/> - <cpu type='tcg' name='Haswell-noTSX' usable='no'/> + <cpu type='tcg' name='IvyBridge' usable='no'> + <blocker name='x2apic'/> + <blocker name='tsc-deadline'/> + <blocker name='avx'/> + <blocker name='f16c'/> + <blocker name='rdrand'/> + </cpu> + <cpu type='tcg' name='Haswell' usable='no'> + <blocker name='fma'/> + <blocker name='pcid'/> + <blocker name='x2apic'/> + <blocker name='tsc-deadline'/> + <blocker name='avx'/> + <blocker name='f16c'/> + <blocker name='rdrand'/> + <blocker name='hle'/> + <blocker name='avx2'/> + <blocker name='invpcid'/> + <blocker name='rtm'/> + </cpu> + <cpu type='tcg' name='Haswell-noTSX' usable='no'> + <blocker name='fma'/> + <blocker name='pcid'/> + <blocker name='x2apic'/> + <blocker name='tsc-deadline'/> + <blocker name='avx'/> + <blocker name='f16c'/> + <blocker name='rdrand'/> + <blocker name='avx2'/> + <blocker name='invpcid'/> + </cpu> <cpu type='tcg' name='Conroe' usable='yes'/> - <cpu type='tcg' name='Broadwell' usable='no'/> - <cpu type='tcg' name='Broadwell-noTSX' usable='no'/> + <cpu type='tcg' name='Broadwell' usable='no'> + <blocker name='fma'/> + <blocker name='pcid'/> + <blocker name='x2apic'/> + <blocker name='tsc-deadline'/> + <blocker name='avx'/> + <blocker name='f16c'/> + <blocker name='rdrand'/> + <blocker name='hle'/> + <blocker name='avx2'/> + <blocker name='invpcid'/> + <blocker name='rtm'/> + <blocker name='rdseed'/> + <blocker name='3dnowprefetch'/> + </cpu> + <cpu type='tcg' name='Broadwell-noTSX' usable='no'> + <blocker name='fma'/> + <blocker name='pcid'/> + <blocker name='x2apic'/> + <blocker name='tsc-deadline'/> + <blocker name='avx'/> + <blocker name='f16c'/> + <blocker name='rdrand'/> + <blocker name='avx2'/> + <blocker name='invpcid'/> + <blocker name='rdseed'/> + <blocker name='3dnowprefetch'/> + </cpu> <cpu type='tcg' name='486' usable='yes'/> <machine name='pc-i440fx-2.9' alias='pc' hotplugCpus='yes' maxCpus='255'/> <machine name='pc-0.12' hotplugCpus='yes' maxCpus='255'/> -- 2.14.2 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list