]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu: Parse unavailable features for CPU models
authorJiri Denemark <jdenemar@redhat.com>
Wed, 20 Sep 2017 08:45:49 +0000 (10:45 +0200)
committerJiri Denemark <jdenemar@redhat.com>
Mon, 16 Oct 2017 07:21:52 +0000 (09:21 +0200)
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@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
src/qemu/qemu_capabilities.c
src/qemu/qemu_monitor.c
src/qemu/qemu_monitor.h
src/qemu/qemu_monitor_json.c
tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml
tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml
tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml
tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml

index 507c7651a158906ed891586ffda1681225e1a647..5b532b247c557eb8be0cc962832219aa242cb2e4 100644 (file)
@@ -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;
     }
 
index 7a2678587840b5a582d34a4846ad0afce71aa76c..aac318f787e0b047eeb4890cd69f89af29bba898 100644 (file)
@@ -3736,6 +3736,8 @@ qemuMonitorCPUDefInfoFree(qemuMonitorCPUDefInfoPtr cpu)
 {
     if (!cpu)
         return;
+
+    virStringListFree(cpu->blockers);
     VIR_FREE(cpu->name);
     VIR_FREE(cpu);
 }
index 1647b46972a9c71759534ad6ea6de92be763667e..40d90d0da68af2feaa53d1b8b33ad331906cf555 100644 (file)
@@ -973,6 +973,7 @@ typedef qemuMonitorCPUDefInfo *qemuMonitorCPUDefInfoPtr;
 struct _qemuMonitorCPUDefInfo {
     virTristateBool usable;
     char *name;
+    char **blockers; /* NULL-terminated string list */
 };
 
 int qemuMonitorGetCPUDefinitions(qemuMonitorPtr mon,
index e591e85073c603a7b459209bf5faa6f543e377d2..5546d1aa1f6e576eabf57b19a3b58a85d4d592d4 100644 (file)
@@ -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;
+            }
         }
     }
 
index 2546ebdd9dc3f7b09d3253753ad1503369f5ebc3..7e44652feb59db5ed91251de4e65b449bebca4b3 100644 (file)
   <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'/>
index 10a182e185f06a1c0c7dd3eaa9d7eadf0bdb6e64..ddbd8c32fa17b8230156dfafcc7875b707d3a380 100644 (file)
   <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'/>
   <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'/>
   <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'/>
index 88029c04ddaa8892f092a3f50127257cd4a79032..3165b2dee33bdff3f939d529225e3179e942c377 100644 (file)
   <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'/>
   <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'/>
   <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'/>
   <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'/>
index e3ff1272700824f8141bbf27bd9bcee6ba14c5ef..05f9dc03086184b23d1c89f869bab73e499d34cb 100644 (file)
   <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'/>
   <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'/>
   <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'/>
   <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'/>