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> Reviewed-by: John Ferlan <jferlan@xxxxxxxxxx> --- Notes: Version 2: - simplified parsing of CPU usability blockers in qemuMonitorJSONGetCPUDefinitions src/qemu/qemu_capabilities.c | 2 +- src/qemu/qemu_monitor.c | 2 + src/qemu/qemu_monitor.h | 1 + src/qemu/qemu_monitor_json.c | 28 +- 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(+), 123 deletions(-) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 507c7651a1..5b532b247c 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -3008,7 +3008,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 7a26785878..aac318f787 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 1647b46972..40d90d0da6 100644 --- a/src/qemu/qemu_monitor.h +++ b/src/qemu/qemu_monitor.h @@ -973,6 +973,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 e591e85073..5546d1aa1f 100644 --- a/src/qemu/qemu_monitor_json.c +++ b/src/qemu/qemu_monitor_json.c @@ -5078,6 +5078,8 @@ qemuMonitorJSONGetCPUDefinitions(qemuMonitorPtr mon, if (virJSONValueObjectHasKey(child, "unavailable-features")) { virJSONValuePtr blockers; + size_t j; + int len; blockers = virJSONValueObjectGetArray(child, "unavailable-features"); @@ -5088,10 +5090,30 @@ qemuMonitorJSONGetCPUDefinitions(qemuMonitorPtr mon, goto cleanup; } - if (virJSONValueArraySize(blockers) > 0) - cpu->usable = VIR_TRISTATE_BOOL_NO; - else + len = virJSONValueArraySize(blockers); + + if (len == 0) { cpu->usable = VIR_TRISTATE_BOOL_YES; + continue; + } + + cpu->usable = VIR_TRISTATE_BOOL_NO; + if (VIR_ALLOC_N(cpu->blockers, len + 1) < 0) + goto cleanup; + + for (j = 0; j < len; j++) { + virJSONValuePtr blocker = virJSONValueArrayGet(blockers, j); + + if (blocker->type != VIR_JSON_TYPE_STRING) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("unexpected value in unavailable-features " + "array")); + goto cleanup; + } + + if (VIR_STRDUP(cpu->blockers[j], virJSONValueGetString(blocker)) < 0) + goto cleanup; + } } } diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml b/tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml index 2546ebdd9d..7e44652feb 100644 --- a/tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml +++ b/tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml @@ -242,72 +242,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 10a182e185..ddbd8c32fa 100644 --- a/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml @@ -701,7 +701,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'/> @@ -710,31 +717,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'/> @@ -745,22 +825,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 88029c04dd..3165b2dee3 100644 --- a/tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml @@ -217,7 +217,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'/> @@ -226,14 +233,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'/> @@ -244,10 +269,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'/> @@ -258,21 +288,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 e3ff127270..05f9dc0308 100644 --- a/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml @@ -694,7 +694,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'/> @@ -703,14 +710,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'/> @@ -722,11 +747,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'/> @@ -737,21 +767,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