[libvirt] [PATCH v2 13/31] qemu: Probe CPU models for KVM and TCG

Jiri Denemark jdenemar at redhat.com
Sun Nov 20 23:21:09 UTC 2016


CPU models (and especially some additional details which we will start
probing for later) differ depending on the accelerator. Thus we need to
call query-cpu-definitions in both KVM and TCG mode to get all data we
want.

Tests in tests/domaincapstest.c are temporarily switched to TCG to avoid
having to squash even more stuff into this single patch. They will all
be switched back later in separate commits.

Signed-off-by: Jiri Denemark <jdenemar at redhat.com>
---
 src/qemu/qemu_capabilities.c                       | 171 +++-
 src/qemu/qemu_capabilities.h                       |   2 +
 src/qemu/qemu_process.c                            |   3 +-
 tests/domaincapsschemadata/qemu_1.7.0.x86_64.xml   |   4 +-
 .../qemu_2.6.0-gicv2-virt.aarch64.xml              |   4 +-
 .../qemu_2.6.0-gicv3-virt.aarch64.xml              |   6 +-
 tests/domaincapsschemadata/qemu_2.6.0.aarch64.xml  |   4 +-
 tests/domaincapsschemadata/qemu_2.6.0.ppc64le.xml  |   4 +-
 tests/domaincapsschemadata/qemu_2.6.0.x86_64.xml   |   4 +-
 tests/domaincapstest.c                             |  12 +-
 tests/qemucapabilitiesdata/caps_1.2.2.x86_64.xml   |  44 +-
 tests/qemucapabilitiesdata/caps_1.3.1.x86_64.xml   |  48 +-
 tests/qemucapabilitiesdata/caps_1.4.2.x86_64.xml   |  48 +-
 tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml   |  48 +-
 tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml   |  48 +-
 tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml   |  48 +-
 tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml   |  50 +-
 tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml   |  56 +-
 tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml   |  56 +-
 .../caps_2.6.0-gicv2.aarch64.xml                   |  60 +-
 .../caps_2.6.0-gicv3.aarch64.xml                   |  60 +-
 tests/qemucapabilitiesdata/caps_2.6.0.ppc64le.xml  | 860 ++++++++++-----------
 tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml   |  56 +-
 tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml   |  58 +-
 tests/qemuxml2argvtest.c                           |  25 +-
 25 files changed, 944 insertions(+), 835 deletions(-)

diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index aa64d08..422e50c 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -386,7 +386,8 @@ struct _virQEMUCaps {
 
     virArch arch;
 
-    virDomainCapsCPUModelsPtr cpuDefinitions;
+    virDomainCapsCPUModelsPtr kvmCPUModels;
+    virDomainCapsCPUModelsPtr tcgCPUModels;
 
     size_t nmachineTypes;
     struct virQEMUCapsMachineType *machineTypes;
@@ -690,7 +691,16 @@ virQEMUCapsParseX86Models(const char *output,
             goto error;
     } while ((p = next));
 
-    qemuCaps->cpuDefinitions = cpus;
+    if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_KVM)) {
+        virDomainCapsCPUModelsPtr kvmCPUs;
+
+        if (!(kvmCPUs = virDomainCapsCPUModelsCopy(cpus)))
+            goto error;
+
+        qemuCaps->kvmCPUModels = kvmCPUs;
+    }
+    qemuCaps->tcgCPUModels = cpus;
+
     return 0;
 
  error:
@@ -739,7 +749,16 @@ virQEMUCapsParsePPCModels(const char *output,
             goto error;
     } while ((p = next));
 
-    qemuCaps->cpuDefinitions = cpus;
+    if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_KVM)) {
+        virDomainCapsCPUModelsPtr kvmCPUs;
+
+        if (!(kvmCPUs = virDomainCapsCPUModelsCopy(cpus)))
+            goto error;
+
+        qemuCaps->kvmCPUModels = kvmCPUs;
+    }
+    qemuCaps->tcgCPUModels = cpus;
+
     return 0;
 
  error:
@@ -2121,9 +2140,15 @@ virQEMUCapsPtr virQEMUCapsNewCopy(virQEMUCapsPtr qemuCaps)
 
     ret->arch = qemuCaps->arch;
 
-    if (qemuCaps->cpuDefinitions) {
-        ret->cpuDefinitions = virDomainCapsCPUModelsCopy(qemuCaps->cpuDefinitions);
-        if (!ret->cpuDefinitions)
+    if (qemuCaps->kvmCPUModels) {
+        ret->kvmCPUModels = virDomainCapsCPUModelsCopy(qemuCaps->kvmCPUModels);
+        if (!ret->kvmCPUModels)
+            goto error;
+    }
+
+    if (qemuCaps->tcgCPUModels) {
+        ret->tcgCPUModels = virDomainCapsCPUModelsCopy(qemuCaps->tcgCPUModels);
+        if (!ret->tcgCPUModels)
             goto error;
     }
 
@@ -2167,7 +2192,8 @@ void virQEMUCapsDispose(void *obj)
     }
     VIR_FREE(qemuCaps->machineTypes);
 
-    virObjectUnref(qemuCaps->cpuDefinitions);
+    virObjectUnref(qemuCaps->kvmCPUModels);
+    virObjectUnref(qemuCaps->tcgCPUModels);
 
     virBitmapFree(qemuCaps->flags);
 
@@ -2318,17 +2344,30 @@ const char *virQEMUCapsGetPackage(virQEMUCapsPtr qemuCaps)
 
 int
 virQEMUCapsAddCPUDefinitions(virQEMUCapsPtr qemuCaps,
+                             virDomainVirtType type,
                              const char **name,
                              size_t count)
 {
     size_t i;
+    virDomainCapsCPUModelsPtr cpus = NULL;
 
-    if (!qemuCaps->cpuDefinitions &&
-        !(qemuCaps->cpuDefinitions = virDomainCapsCPUModelsNew(count)))
-        return -1;
+    if (type == VIR_DOMAIN_VIRT_KVM && qemuCaps->kvmCPUModels)
+        cpus = qemuCaps->kvmCPUModels;
+    else if (type == VIR_DOMAIN_VIRT_QEMU && qemuCaps->tcgCPUModels)
+        cpus = qemuCaps->tcgCPUModels;
+
+    if (!cpus) {
+        if (!(cpus = virDomainCapsCPUModelsNew(count)))
+            return -1;
+
+        if (type == VIR_DOMAIN_VIRT_KVM)
+            qemuCaps->kvmCPUModels = cpus;
+        else
+            qemuCaps->tcgCPUModels = cpus;
+    }
 
     for (i = 0; i < count; i++) {
-        if (virDomainCapsCPUModelsAdd(qemuCaps->cpuDefinitions, name[i], -1,
+        if (virDomainCapsCPUModelsAdd(cpus, name[i], -1,
                                       VIR_DOMCAPS_CPU_USABLE_UNKNOWN) < 0)
             return -1;
     }
@@ -2339,31 +2378,38 @@ virQEMUCapsAddCPUDefinitions(virQEMUCapsPtr qemuCaps,
 
 int
 virQEMUCapsGetCPUDefinitions(virQEMUCapsPtr qemuCaps,
+                             virDomainVirtType type,
                              char ***names,
                              size_t *count)
 {
     size_t i;
     char **models = NULL;
+    virDomainCapsCPUModelsPtr cpus;
 
     *count = 0;
     if (names)
         *names = NULL;
 
-    if (!qemuCaps->cpuDefinitions)
+    if (type == VIR_DOMAIN_VIRT_KVM)
+        cpus = qemuCaps->kvmCPUModels;
+    else
+        cpus = qemuCaps->tcgCPUModels;
+
+    if (!cpus)
         return 0;
 
-    if (names && VIR_ALLOC_N(models, qemuCaps->cpuDefinitions->nmodels) < 0)
+    if (names && VIR_ALLOC_N(models, cpus->nmodels) < 0)
         return -1;
 
-    for (i = 0; i < qemuCaps->cpuDefinitions->nmodels; i++) {
-        virDomainCapsCPUModelPtr cpu = qemuCaps->cpuDefinitions->models + i;
+    for (i = 0; i < cpus->nmodels; i++) {
+        virDomainCapsCPUModelPtr cpu = cpus->models + i;
         if (models && VIR_STRDUP(models[i], cpu->name) < 0)
             goto error;
     }
 
     if (names)
         *names = models;
-    *count = qemuCaps->cpuDefinitions->nmodels;
+    *count = cpus->nmodels;
     return 0;
 
  error:
@@ -2385,6 +2431,8 @@ virQEMUCapsIsCPUModeSupported(virQEMUCapsPtr qemuCaps,
                               virDomainVirtType type,
                               virCPUMode mode)
 {
+    virDomainCapsCPUModelsPtr cpus;
+
     switch (mode) {
     case VIR_CPU_MODE_HOST_PASSTHROUGH:
         return type == VIR_DOMAIN_VIRT_KVM &&
@@ -2394,8 +2442,11 @@ virQEMUCapsIsCPUModeSupported(virQEMUCapsPtr qemuCaps,
         return !!qemuCaps->hostCPUModel;
 
     case VIR_CPU_MODE_CUSTOM:
-        return qemuCaps->cpuDefinitions &&
-               qemuCaps->cpuDefinitions->nmodels > 0;
+        if (type == VIR_DOMAIN_VIRT_KVM)
+            cpus = qemuCaps->kvmCPUModels;
+        else
+            cpus = qemuCaps->tcgCPUModels;
+        return cpus && cpus->nmodels > 0;
 
     case VIR_CPU_MODE_LAST:
         break;
@@ -2712,8 +2763,10 @@ virQEMUCapsProbeQMPMachineTypes(virQEMUCapsPtr qemuCaps,
 
 static int
 virQEMUCapsProbeQMPCPUDefinitions(virQEMUCapsPtr qemuCaps,
-                                  qemuMonitorPtr mon)
+                                  qemuMonitorPtr mon,
+                                  bool tcg)
 {
+    virDomainCapsCPUModelsPtr models;
     qemuMonitorCPUDefInfoPtr *cpus;
     int ncpus;
     int ret = -1;
@@ -2722,11 +2775,16 @@ virQEMUCapsProbeQMPCPUDefinitions(virQEMUCapsPtr qemuCaps,
     if ((ncpus = qemuMonitorGetCPUDefinitions(mon, &cpus)) < 0)
         return -1;
 
-    if (!(qemuCaps->cpuDefinitions = virDomainCapsCPUModelsNew(ncpus)))
+    if (!(models = virDomainCapsCPUModelsNew(ncpus)))
         goto cleanup;
 
+    if (tcg || !virQEMUCapsGet(qemuCaps, QEMU_CAPS_KVM))
+        qemuCaps->tcgCPUModels = models;
+    else
+        qemuCaps->kvmCPUModels = models;
+
     for (i = 0; i < ncpus; i++) {
-        if (virDomainCapsCPUModelsAddSteal(qemuCaps->cpuDefinitions,
+        if (virDomainCapsCPUModelsAddSteal(models,
                                            &cpus[i]->name,
                                            VIR_DOMCAPS_CPU_USABLE_UNKNOWN) < 0)
             goto cleanup;
@@ -3004,15 +3062,22 @@ virQEMUCapsInitHostCPUModel(virQEMUCapsPtr qemuCaps,
 
 static int
 virQEMUCapsLoadCPUModels(virQEMUCapsPtr qemuCaps,
-                         xmlXPathContextPtr ctxt)
+                         xmlXPathContextPtr ctxt,
+                         virDomainVirtType type)
 {
+    virDomainCapsCPUModelsPtr cpus = NULL;
     xmlNodePtr *nodes = NULL;
     char *str = NULL;
     size_t i;
     int n;
     int ret = -1;
 
-    if ((n = virXPathNodeSet("./cpu", ctxt, &nodes)) < 0) {
+    if (type == VIR_DOMAIN_VIRT_KVM)
+        n = virXPathNodeSet("./cpu[@type='kvm']", ctxt, &nodes);
+    else
+        n = virXPathNodeSet("./cpu[@type='tcg']", ctxt, &nodes);
+
+    if (n < 0) {
         virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
                        _("failed to parse qemu capabilities cpus"));
         goto cleanup;
@@ -3023,9 +3088,14 @@ virQEMUCapsLoadCPUModels(virQEMUCapsPtr qemuCaps,
         goto cleanup;
     }
 
-    if (!(qemuCaps->cpuDefinitions = virDomainCapsCPUModelsNew(n)))
+    if (!(cpus = virDomainCapsCPUModelsNew(n)))
         goto cleanup;
 
+    if (type == VIR_DOMAIN_VIRT_KVM)
+        qemuCaps->kvmCPUModels = cpus;
+    else
+        qemuCaps->tcgCPUModels = cpus;
+
     for (i = 0; i < n; i++) {
         if (!(str = virXMLPropString(nodes[i], "name"))) {
             virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
@@ -3033,8 +3103,7 @@ virQEMUCapsLoadCPUModels(virQEMUCapsPtr qemuCaps,
             goto cleanup;
         }
 
-        if (virDomainCapsCPUModelsAddSteal(qemuCaps->cpuDefinitions,
-                                           &str,
+        if (virDomainCapsCPUModelsAddSteal(cpus, &str,
                                            VIR_DOMCAPS_CPU_USABLE_UNKNOWN) < 0)
             goto cleanup;
     }
@@ -3176,7 +3245,8 @@ virQEMUCapsLoadCache(virCapsPtr caps,
     }
     VIR_FREE(str);
 
-    if (virQEMUCapsLoadCPUModels(qemuCaps, ctxt) < 0)
+    if (virQEMUCapsLoadCPUModels(qemuCaps, ctxt, VIR_DOMAIN_VIRT_KVM) < 0 ||
+        virQEMUCapsLoadCPUModels(qemuCaps, ctxt, VIR_DOMAIN_VIRT_QEMU) < 0)
         goto cleanup;
 
     if ((n = virXPathNodeSet("./machine", ctxt, &nodes)) < 0) {
@@ -3294,15 +3364,27 @@ virQEMUCapsLoadCache(virCapsPtr caps,
 
 static void
 virQEMUCapsFormatCPUModels(virQEMUCapsPtr qemuCaps,
-                           virBufferPtr buf)
+                           virBufferPtr buf,
+                           virDomainVirtType type)
 {
+    virDomainCapsCPUModelsPtr cpus;
+    const char *typeStr;
     size_t i;
 
-    if (qemuCaps->cpuDefinitions) {
-        for (i = 0; i < qemuCaps->cpuDefinitions->nmodels; i++) {
-            virDomainCapsCPUModelPtr cpu = qemuCaps->cpuDefinitions->models + i;
-            virBufferEscapeString(buf, "<cpu name='%s'/>\n", cpu->name);
-        }
+    if (type == VIR_DOMAIN_VIRT_KVM) {
+        typeStr = "kvm";
+        cpus = qemuCaps->kvmCPUModels;
+    } else {
+        typeStr = "tcg";
+        cpus = qemuCaps->tcgCPUModels;
+    }
+
+    if (!cpus)
+        return;
+
+    for (i = 0; i < cpus->nmodels; i++) {
+        virBufferAsprintf(buf, "<cpu type='%s' ", typeStr);
+        virBufferEscapeString(buf, "name='%s'/>\n", cpus->models[i].name);
     }
 }
 
@@ -3349,7 +3431,8 @@ virQEMUCapsFormatCache(virQEMUCapsPtr qemuCaps,
     virBufferAsprintf(&buf, "<arch>%s</arch>\n",
                       virArchToString(qemuCaps->arch));
 
-    virQEMUCapsFormatCPUModels(qemuCaps, &buf);
+    virQEMUCapsFormatCPUModels(qemuCaps, &buf, VIR_DOMAIN_VIRT_KVM);
+    virQEMUCapsFormatCPUModels(qemuCaps, &buf, VIR_DOMAIN_VIRT_QEMU);
 
     for (i = 0; i < qemuCaps->nmachineTypes; i++) {
         virBufferEscapeString(&buf, "<machine name='%s'",
@@ -3466,8 +3549,10 @@ virQEMUCapsReset(virQEMUCapsPtr qemuCaps)
     qemuCaps->arch = VIR_ARCH_NONE;
     qemuCaps->usedQMP = false;
 
-    virObjectUnref(qemuCaps->cpuDefinitions);
-    qemuCaps->cpuDefinitions = NULL;
+    virObjectUnref(qemuCaps->kvmCPUModels);
+    qemuCaps->kvmCPUModels = NULL;
+    virObjectUnref(qemuCaps->tcgCPUModels);
+    qemuCaps->tcgCPUModels = NULL;
 
     for (i = 0; i < qemuCaps->nmachineTypes; i++) {
         VIR_FREE(qemuCaps->machineTypes[i].name);
@@ -4027,7 +4112,7 @@ virQEMUCapsInitQMPMonitor(virQEMUCapsPtr qemuCaps,
         goto cleanup;
     if (virQEMUCapsProbeQMPMachineTypes(qemuCaps, mon) < 0)
         goto cleanup;
-    if (virQEMUCapsProbeQMPCPUDefinitions(qemuCaps, mon) < 0)
+    if (virQEMUCapsProbeQMPCPUDefinitions(qemuCaps, mon, false) < 0)
         goto cleanup;
     if (virQEMUCapsProbeQMPTPM(qemuCaps, mon) < 0)
         goto cleanup;
@@ -4075,6 +4160,9 @@ virQEMUCapsInitQMPMonitorTCG(virQEMUCapsPtr qemuCaps ATTRIBUTE_UNUSED,
         goto cleanup;
     }
 
+    if (virQEMUCapsProbeQMPCPUDefinitions(qemuCaps, mon, true) < 0)
+        goto cleanup;
+
     ret = 0;
  cleanup:
     return ret;
@@ -4862,7 +4950,14 @@ virQEMUCapsFillDomainCPUCaps(virCapsPtr caps,
         char **models = NULL;
 
         if (virCPUGetModels(domCaps->arch, &models) >= 0) {
-            filtered = virDomainCapsCPUModelsFilter(qemuCaps->cpuDefinitions,
+            virDomainCapsCPUModelsPtr cpus;
+
+            if (domCaps->virttype == VIR_DOMAIN_VIRT_KVM)
+                cpus = qemuCaps->kvmCPUModels;
+            else
+                cpus = qemuCaps->tcgCPUModels;
+
+            filtered = virDomainCapsCPUModelsFilter(cpus,
                                                     (const char **) models);
             virStringFreeList(models);
         }
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index beeed2e..2f24452 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -430,9 +430,11 @@ unsigned int virQEMUCapsGetVersion(virQEMUCapsPtr qemuCaps);
 const char *virQEMUCapsGetPackage(virQEMUCapsPtr qemuCaps);
 unsigned int virQEMUCapsGetKVMVersion(virQEMUCapsPtr qemuCaps);
 int virQEMUCapsAddCPUDefinitions(virQEMUCapsPtr qemuCaps,
+                                 virDomainVirtType type,
                                  const char **name,
                                  size_t count);
 int virQEMUCapsGetCPUDefinitions(virQEMUCapsPtr qemuCaps,
+                                 virDomainVirtType type,
                                  char ***names,
                                  size_t *count);
 virCPUDefPtr virQEMUCapsGetHostModel(virQEMUCapsPtr qemuCaps);
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index 3552a31..8920464 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -5085,7 +5085,8 @@ qemuProcessUpdateGuestCPU(virDomainDefPtr def,
                      virQEMUCapsGetHostModel(qemuCaps)) < 0)
         goto cleanup;
 
-    if (virQEMUCapsGetCPUDefinitions(qemuCaps, &models, &nmodels) < 0 ||
+    if (virQEMUCapsGetCPUDefinitions(qemuCaps, def->virtType,
+                                     &models, &nmodels) < 0 ||
         virCPUTranslate(def->os.arch, def->cpu,
                         (const char **) models, nmodels) < 0)
         goto cleanup;
diff --git a/tests/domaincapsschemadata/qemu_1.7.0.x86_64.xml b/tests/domaincapsschemadata/qemu_1.7.0.x86_64.xml
index 4aa475c..67f7ee8 100644
--- a/tests/domaincapsschemadata/qemu_1.7.0.x86_64.xml
+++ b/tests/domaincapsschemadata/qemu_1.7.0.x86_64.xml
@@ -1,6 +1,6 @@
 <domainCapabilities>
   <path>/usr/bin/qemu-system-x86_64</path>
-  <domain>kvm</domain>
+  <domain>qemu</domain>
   <machine>pc-i440fx-1.7</machine>
   <arch>x86_64</arch>
   <vcpu max='255'/>
@@ -19,7 +19,7 @@
     </loader>
   </os>
   <cpu>
-    <mode name='host-passthrough' supported='yes'/>
+    <mode name='host-passthrough' supported='no'/>
     <mode name='host-model' supported='yes'>
       <model fallback='allow'>Broadwell</model>
     </mode>
diff --git a/tests/domaincapsschemadata/qemu_2.6.0-gicv2-virt.aarch64.xml b/tests/domaincapsschemadata/qemu_2.6.0-gicv2-virt.aarch64.xml
index 76aee83..a2702f4 100644
--- a/tests/domaincapsschemadata/qemu_2.6.0-gicv2-virt.aarch64.xml
+++ b/tests/domaincapsschemadata/qemu_2.6.0-gicv2-virt.aarch64.xml
@@ -1,6 +1,6 @@
 <domainCapabilities>
   <path>/usr/bin/qemu-system-aarch64</path>
-  <domain>kvm</domain>
+  <domain>qemu</domain>
   <machine>virt-2.6</machine>
   <arch>aarch64</arch>
   <vcpu max='255'/>
@@ -19,7 +19,7 @@
     </loader>
   </os>
   <cpu>
-    <mode name='host-passthrough' supported='yes'/>
+    <mode name='host-passthrough' supported='no'/>
     <mode name='host-model' supported='no'/>
     <mode name='custom' supported='yes'>
       <model usable='unknown'>pxa262</model>
diff --git a/tests/domaincapsschemadata/qemu_2.6.0-gicv3-virt.aarch64.xml b/tests/domaincapsschemadata/qemu_2.6.0-gicv3-virt.aarch64.xml
index 104c29f..a2702f4 100644
--- a/tests/domaincapsschemadata/qemu_2.6.0-gicv3-virt.aarch64.xml
+++ b/tests/domaincapsschemadata/qemu_2.6.0-gicv3-virt.aarch64.xml
@@ -1,6 +1,6 @@
 <domainCapabilities>
   <path>/usr/bin/qemu-system-aarch64</path>
-  <domain>kvm</domain>
+  <domain>qemu</domain>
   <machine>virt-2.6</machine>
   <arch>aarch64</arch>
   <vcpu max='255'/>
@@ -19,7 +19,7 @@
     </loader>
   </os>
   <cpu>
-    <mode name='host-passthrough' supported='yes'/>
+    <mode name='host-passthrough' supported='no'/>
     <mode name='host-model' supported='no'/>
     <mode name='custom' supported='yes'>
       <model usable='unknown'>pxa262</model>
@@ -108,7 +108,7 @@
   <features>
     <gic supported='yes'>
       <enum name='version'>
-        <value>3</value>
+        <value>2</value>
       </enum>
     </gic>
   </features>
diff --git a/tests/domaincapsschemadata/qemu_2.6.0.aarch64.xml b/tests/domaincapsschemadata/qemu_2.6.0.aarch64.xml
index ca511f4..d2a2e7b 100644
--- a/tests/domaincapsschemadata/qemu_2.6.0.aarch64.xml
+++ b/tests/domaincapsschemadata/qemu_2.6.0.aarch64.xml
@@ -1,6 +1,6 @@
 <domainCapabilities>
   <path>/usr/bin/qemu-system-aarch64</path>
-  <domain>kvm</domain>
+  <domain>qemu</domain>
   <machine>integratorcp</machine>
   <arch>aarch64</arch>
   <vcpu max='1'/>
@@ -19,7 +19,7 @@
     </loader>
   </os>
   <cpu>
-    <mode name='host-passthrough' supported='yes'/>
+    <mode name='host-passthrough' supported='no'/>
     <mode name='host-model' supported='no'/>
     <mode name='custom' supported='yes'>
       <model usable='unknown'>pxa262</model>
diff --git a/tests/domaincapsschemadata/qemu_2.6.0.ppc64le.xml b/tests/domaincapsschemadata/qemu_2.6.0.ppc64le.xml
index a75764c..f6a98f7 100644
--- a/tests/domaincapsschemadata/qemu_2.6.0.ppc64le.xml
+++ b/tests/domaincapsschemadata/qemu_2.6.0.ppc64le.xml
@@ -1,6 +1,6 @@
 <domainCapabilities>
   <path>/usr/bin/qemu-system-ppc64</path>
-  <domain>kvm</domain>
+  <domain>qemu</domain>
   <machine>pseries-2.6</machine>
   <arch>ppc64le</arch>
   <vcpu max='255'/>
@@ -19,7 +19,7 @@
     </loader>
   </os>
   <cpu>
-    <mode name='host-passthrough' supported='yes'/>
+    <mode name='host-passthrough' supported='no'/>
     <mode name='host-model' supported='yes'>
       <model fallback='allow'>POWER8</model>
     </mode>
diff --git a/tests/domaincapsschemadata/qemu_2.6.0.x86_64.xml b/tests/domaincapsschemadata/qemu_2.6.0.x86_64.xml
index a8975e8..33c6eda 100644
--- a/tests/domaincapsschemadata/qemu_2.6.0.x86_64.xml
+++ b/tests/domaincapsschemadata/qemu_2.6.0.x86_64.xml
@@ -1,6 +1,6 @@
 <domainCapabilities>
   <path>/usr/bin/qemu-system-x86_64</path>
-  <domain>kvm</domain>
+  <domain>qemu</domain>
   <machine>pc-i440fx-2.6</machine>
   <arch>x86_64</arch>
   <vcpu max='255'/>
@@ -19,7 +19,7 @@
     </loader>
   </os>
   <cpu>
-    <mode name='host-passthrough' supported='yes'/>
+    <mode name='host-passthrough' supported='no'/>
     <mode name='host-model' supported='yes'>
       <model fallback='allow'>Broadwell</model>
     </mode>
diff --git a/tests/domaincapstest.c b/tests/domaincapstest.c
index e70fa05..74a16ce 100644
--- a/tests/domaincapstest.c
+++ b/tests/domaincapstest.c
@@ -413,27 +413,27 @@ mymain(void)
 
     DO_TEST_QEMU("1.7.0", "caps_1.7.0",
                  "/usr/bin/qemu-system-x86_64", NULL,
-                 "x86_64", VIR_DOMAIN_VIRT_KVM);
+                 "x86_64", VIR_DOMAIN_VIRT_QEMU);
 
     DO_TEST_QEMU("2.6.0", "caps_2.6.0",
                  "/usr/bin/qemu-system-x86_64", NULL,
-                 "x86_64", VIR_DOMAIN_VIRT_KVM);
+                 "x86_64", VIR_DOMAIN_VIRT_QEMU);
 
     DO_TEST_QEMU("2.6.0", "caps_2.6.0-gicv2",
                  "/usr/bin/qemu-system-aarch64", NULL,
-                 "aarch64", VIR_DOMAIN_VIRT_KVM);
+                 "aarch64", VIR_DOMAIN_VIRT_QEMU);
 
     DO_TEST_QEMU("2.6.0-gicv2", "caps_2.6.0-gicv2",
                  "/usr/bin/qemu-system-aarch64", "virt",
-                 "aarch64", VIR_DOMAIN_VIRT_KVM);
+                 "aarch64", VIR_DOMAIN_VIRT_QEMU);
 
     DO_TEST_QEMU("2.6.0-gicv3", "caps_2.6.0-gicv3",
                  "/usr/bin/qemu-system-aarch64", "virt",
-                 "aarch64", VIR_DOMAIN_VIRT_KVM);
+                 "aarch64", VIR_DOMAIN_VIRT_QEMU);
 
     DO_TEST_QEMU("2.6.0", "caps_2.6.0",
                  "/usr/bin/qemu-system-ppc64", NULL,
-                 "ppc64le", VIR_DOMAIN_VIRT_KVM);
+                 "ppc64le", VIR_DOMAIN_VIRT_QEMU);
 
 #endif /* WITH_QEMU */
 
diff --git a/tests/qemucapabilitiesdata/caps_1.2.2.x86_64.xml b/tests/qemucapabilitiesdata/caps_1.2.2.x86_64.xml
index 0d792be..fd44d33 100644
--- a/tests/qemucapabilitiesdata/caps_1.2.2.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_1.2.2.x86_64.xml
@@ -114,28 +114,28 @@
   <kvmVersion>0</kvmVersion>
   <package></package>
   <arch>x86_64</arch>
-  <cpu name='qemu64'/>
-  <cpu name='phenom'/>
-  <cpu name='core2duo'/>
-  <cpu name='kvm64'/>
-  <cpu name='qemu32'/>
-  <cpu name='kvm32'/>
-  <cpu name='coreduo'/>
-  <cpu name='486'/>
-  <cpu name='pentium'/>
-  <cpu name='pentium2'/>
-  <cpu name='pentium3'/>
-  <cpu name='athlon'/>
-  <cpu name='n270'/>
-  <cpu name='Conroe'/>
-  <cpu name='Penryn'/>
-  <cpu name='Nehalem'/>
-  <cpu name='Westmere'/>
-  <cpu name='SandyBridge'/>
-  <cpu name='Opteron_G1'/>
-  <cpu name='Opteron_G2'/>
-  <cpu name='Opteron_G3'/>
-  <cpu name='Opteron_G4'/>
+  <cpu type='tcg' name='qemu64'/>
+  <cpu type='tcg' name='phenom'/>
+  <cpu type='tcg' name='core2duo'/>
+  <cpu type='tcg' name='kvm64'/>
+  <cpu type='tcg' name='qemu32'/>
+  <cpu type='tcg' name='kvm32'/>
+  <cpu type='tcg' name='coreduo'/>
+  <cpu type='tcg' name='486'/>
+  <cpu type='tcg' name='pentium'/>
+  <cpu type='tcg' name='pentium2'/>
+  <cpu type='tcg' name='pentium3'/>
+  <cpu type='tcg' name='athlon'/>
+  <cpu type='tcg' name='n270'/>
+  <cpu type='tcg' name='Conroe'/>
+  <cpu type='tcg' name='Penryn'/>
+  <cpu type='tcg' name='Nehalem'/>
+  <cpu type='tcg' name='Westmere'/>
+  <cpu type='tcg' name='SandyBridge'/>
+  <cpu type='tcg' name='Opteron_G1'/>
+  <cpu type='tcg' name='Opteron_G2'/>
+  <cpu type='tcg' name='Opteron_G3'/>
+  <cpu type='tcg' name='Opteron_G4'/>
   <machine name='pc-1.2' alias='pc' maxCpus='0'/>
   <machine name='isapc' maxCpus='0'/>
   <machine name='pc-0.10' maxCpus='0'/>
diff --git a/tests/qemucapabilitiesdata/caps_1.3.1.x86_64.xml b/tests/qemucapabilitiesdata/caps_1.3.1.x86_64.xml
index 97b9858..4a184c4 100644
--- a/tests/qemucapabilitiesdata/caps_1.3.1.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_1.3.1.x86_64.xml
@@ -132,30 +132,30 @@
   <kvmVersion>0</kvmVersion>
   <package></package>
   <arch>x86_64</arch>
-  <cpu name='qemu64'/>
-  <cpu name='phenom'/>
-  <cpu name='core2duo'/>
-  <cpu name='kvm64'/>
-  <cpu name='qemu32'/>
-  <cpu name='kvm32'/>
-  <cpu name='coreduo'/>
-  <cpu name='486'/>
-  <cpu name='pentium'/>
-  <cpu name='pentium2'/>
-  <cpu name='pentium3'/>
-  <cpu name='athlon'/>
-  <cpu name='n270'/>
-  <cpu name='Conroe'/>
-  <cpu name='Penryn'/>
-  <cpu name='Nehalem'/>
-  <cpu name='Westmere'/>
-  <cpu name='SandyBridge'/>
-  <cpu name='Haswell'/>
-  <cpu name='Opteron_G1'/>
-  <cpu name='Opteron_G2'/>
-  <cpu name='Opteron_G3'/>
-  <cpu name='Opteron_G4'/>
-  <cpu name='Opteron_G5'/>
+  <cpu type='tcg' name='qemu64'/>
+  <cpu type='tcg' name='phenom'/>
+  <cpu type='tcg' name='core2duo'/>
+  <cpu type='tcg' name='kvm64'/>
+  <cpu type='tcg' name='qemu32'/>
+  <cpu type='tcg' name='kvm32'/>
+  <cpu type='tcg' name='coreduo'/>
+  <cpu type='tcg' name='486'/>
+  <cpu type='tcg' name='pentium'/>
+  <cpu type='tcg' name='pentium2'/>
+  <cpu type='tcg' name='pentium3'/>
+  <cpu type='tcg' name='athlon'/>
+  <cpu type='tcg' name='n270'/>
+  <cpu type='tcg' name='Conroe'/>
+  <cpu type='tcg' name='Penryn'/>
+  <cpu type='tcg' name='Nehalem'/>
+  <cpu type='tcg' name='Westmere'/>
+  <cpu type='tcg' name='SandyBridge'/>
+  <cpu type='tcg' name='Haswell'/>
+  <cpu type='tcg' name='Opteron_G1'/>
+  <cpu type='tcg' name='Opteron_G2'/>
+  <cpu type='tcg' name='Opteron_G3'/>
+  <cpu type='tcg' name='Opteron_G4'/>
+  <cpu type='tcg' name='Opteron_G5'/>
   <machine name='pc-1.3' alias='pc' maxCpus='0'/>
   <machine name='q35-next' alias='q35' maxCpus='0'/>
   <machine name='isapc' maxCpus='0'/>
diff --git a/tests/qemucapabilitiesdata/caps_1.4.2.x86_64.xml b/tests/qemucapabilitiesdata/caps_1.4.2.x86_64.xml
index 60dea6f..14b0a93 100644
--- a/tests/qemucapabilitiesdata/caps_1.4.2.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_1.4.2.x86_64.xml
@@ -133,30 +133,30 @@
   <kvmVersion>0</kvmVersion>
   <package></package>
   <arch>x86_64</arch>
-  <cpu name='Opteron_G5'/>
-  <cpu name='Opteron_G4'/>
-  <cpu name='Opteron_G3'/>
-  <cpu name='Opteron_G2'/>
-  <cpu name='Opteron_G1'/>
-  <cpu name='Haswell'/>
-  <cpu name='SandyBridge'/>
-  <cpu name='Westmere'/>
-  <cpu name='Nehalem'/>
-  <cpu name='Penryn'/>
-  <cpu name='Conroe'/>
-  <cpu name='n270'/>
-  <cpu name='athlon'/>
-  <cpu name='pentium3'/>
-  <cpu name='pentium2'/>
-  <cpu name='pentium'/>
-  <cpu name='486'/>
-  <cpu name='coreduo'/>
-  <cpu name='kvm32'/>
-  <cpu name='qemu32'/>
-  <cpu name='kvm64'/>
-  <cpu name='core2duo'/>
-  <cpu name='phenom'/>
-  <cpu name='qemu64'/>
+  <cpu type='tcg' name='Opteron_G5'/>
+  <cpu type='tcg' name='Opteron_G4'/>
+  <cpu type='tcg' name='Opteron_G3'/>
+  <cpu type='tcg' name='Opteron_G2'/>
+  <cpu type='tcg' name='Opteron_G1'/>
+  <cpu type='tcg' name='Haswell'/>
+  <cpu type='tcg' name='SandyBridge'/>
+  <cpu type='tcg' name='Westmere'/>
+  <cpu type='tcg' name='Nehalem'/>
+  <cpu type='tcg' name='Penryn'/>
+  <cpu type='tcg' name='Conroe'/>
+  <cpu type='tcg' name='n270'/>
+  <cpu type='tcg' name='athlon'/>
+  <cpu type='tcg' name='pentium3'/>
+  <cpu type='tcg' name='pentium2'/>
+  <cpu type='tcg' name='pentium'/>
+  <cpu type='tcg' name='486'/>
+  <cpu type='tcg' name='coreduo'/>
+  <cpu type='tcg' name='kvm32'/>
+  <cpu type='tcg' name='qemu32'/>
+  <cpu type='tcg' name='kvm64'/>
+  <cpu type='tcg' name='core2duo'/>
+  <cpu type='tcg' name='phenom'/>
+  <cpu type='tcg' name='qemu64'/>
   <machine name='pc-i440fx-1.4' alias='pc' maxCpus='0'/>
   <machine name='pc-q35-1.4' alias='q35' maxCpus='0'/>
   <machine name='isapc' maxCpus='0'/>
diff --git a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
index cc4ffef..5b5a3d1 100644
--- a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
@@ -143,30 +143,30 @@
   <kvmVersion>0</kvmVersion>
   <package></package>
   <arch>x86_64</arch>
-  <cpu name='Opteron_G5'/>
-  <cpu name='Opteron_G4'/>
-  <cpu name='Opteron_G3'/>
-  <cpu name='Opteron_G2'/>
-  <cpu name='Opteron_G1'/>
-  <cpu name='Haswell'/>
-  <cpu name='SandyBridge'/>
-  <cpu name='Westmere'/>
-  <cpu name='Nehalem'/>
-  <cpu name='Penryn'/>
-  <cpu name='Conroe'/>
-  <cpu name='n270'/>
-  <cpu name='athlon'/>
-  <cpu name='pentium3'/>
-  <cpu name='pentium2'/>
-  <cpu name='pentium'/>
-  <cpu name='486'/>
-  <cpu name='coreduo'/>
-  <cpu name='kvm32'/>
-  <cpu name='qemu32'/>
-  <cpu name='kvm64'/>
-  <cpu name='core2duo'/>
-  <cpu name='phenom'/>
-  <cpu name='qemu64'/>
+  <cpu type='tcg' name='Opteron_G5'/>
+  <cpu type='tcg' name='Opteron_G4'/>
+  <cpu type='tcg' name='Opteron_G3'/>
+  <cpu type='tcg' name='Opteron_G2'/>
+  <cpu type='tcg' name='Opteron_G1'/>
+  <cpu type='tcg' name='Haswell'/>
+  <cpu type='tcg' name='SandyBridge'/>
+  <cpu type='tcg' name='Westmere'/>
+  <cpu type='tcg' name='Nehalem'/>
+  <cpu type='tcg' name='Penryn'/>
+  <cpu type='tcg' name='Conroe'/>
+  <cpu type='tcg' name='n270'/>
+  <cpu type='tcg' name='athlon'/>
+  <cpu type='tcg' name='pentium3'/>
+  <cpu type='tcg' name='pentium2'/>
+  <cpu type='tcg' name='pentium'/>
+  <cpu type='tcg' name='486'/>
+  <cpu type='tcg' name='coreduo'/>
+  <cpu type='tcg' name='kvm32'/>
+  <cpu type='tcg' name='qemu32'/>
+  <cpu type='tcg' name='kvm64'/>
+  <cpu type='tcg' name='core2duo'/>
+  <cpu type='tcg' name='phenom'/>
+  <cpu type='tcg' name='qemu64'/>
   <machine name='pc-i440fx-1.5' alias='pc' maxCpus='255'/>
   <machine name='pc-q35-1.4' maxCpus='255'/>
   <machine name='pc-q35-1.5' alias='q35' maxCpus='255'/>
diff --git a/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml
index 8e0e697..0c1db8e 100644
--- a/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml
@@ -148,30 +148,30 @@
   <kvmVersion>0</kvmVersion>
   <package></package>
   <arch>x86_64</arch>
-  <cpu name='Opteron_G5'/>
-  <cpu name='Opteron_G4'/>
-  <cpu name='Opteron_G3'/>
-  <cpu name='Opteron_G2'/>
-  <cpu name='Opteron_G1'/>
-  <cpu name='Haswell'/>
-  <cpu name='SandyBridge'/>
-  <cpu name='Westmere'/>
-  <cpu name='Nehalem'/>
-  <cpu name='Penryn'/>
-  <cpu name='Conroe'/>
-  <cpu name='n270'/>
-  <cpu name='athlon'/>
-  <cpu name='pentium3'/>
-  <cpu name='pentium2'/>
-  <cpu name='pentium'/>
-  <cpu name='486'/>
-  <cpu name='coreduo'/>
-  <cpu name='kvm32'/>
-  <cpu name='qemu32'/>
-  <cpu name='kvm64'/>
-  <cpu name='core2duo'/>
-  <cpu name='phenom'/>
-  <cpu name='qemu64'/>
+  <cpu type='tcg' name='Opteron_G5'/>
+  <cpu type='tcg' name='Opteron_G4'/>
+  <cpu type='tcg' name='Opteron_G3'/>
+  <cpu type='tcg' name='Opteron_G2'/>
+  <cpu type='tcg' name='Opteron_G1'/>
+  <cpu type='tcg' name='Haswell'/>
+  <cpu type='tcg' name='SandyBridge'/>
+  <cpu type='tcg' name='Westmere'/>
+  <cpu type='tcg' name='Nehalem'/>
+  <cpu type='tcg' name='Penryn'/>
+  <cpu type='tcg' name='Conroe'/>
+  <cpu type='tcg' name='n270'/>
+  <cpu type='tcg' name='athlon'/>
+  <cpu type='tcg' name='pentium3'/>
+  <cpu type='tcg' name='pentium2'/>
+  <cpu type='tcg' name='pentium'/>
+  <cpu type='tcg' name='486'/>
+  <cpu type='tcg' name='coreduo'/>
+  <cpu type='tcg' name='kvm32'/>
+  <cpu type='tcg' name='qemu32'/>
+  <cpu type='tcg' name='kvm64'/>
+  <cpu type='tcg' name='core2duo'/>
+  <cpu type='tcg' name='phenom'/>
+  <cpu type='tcg' name='qemu64'/>
   <machine name='pc-i440fx-1.6' alias='pc' maxCpus='255'/>
   <machine name='pc-q35-1.4' maxCpus='255'/>
   <machine name='pc-q35-1.5' maxCpus='255'/>
diff --git a/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml
index 40acf62..a37936f 100644
--- a/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml
@@ -150,30 +150,30 @@
   <kvmVersion>0</kvmVersion>
   <package></package>
   <arch>x86_64</arch>
-  <cpu name='Opteron_G5'/>
-  <cpu name='Opteron_G4'/>
-  <cpu name='Opteron_G3'/>
-  <cpu name='Opteron_G2'/>
-  <cpu name='Opteron_G1'/>
-  <cpu name='Haswell'/>
-  <cpu name='SandyBridge'/>
-  <cpu name='Westmere'/>
-  <cpu name='Nehalem'/>
-  <cpu name='Penryn'/>
-  <cpu name='Conroe'/>
-  <cpu name='n270'/>
-  <cpu name='athlon'/>
-  <cpu name='pentium3'/>
-  <cpu name='pentium2'/>
-  <cpu name='pentium'/>
-  <cpu name='486'/>
-  <cpu name='coreduo'/>
-  <cpu name='kvm32'/>
-  <cpu name='qemu32'/>
-  <cpu name='kvm64'/>
-  <cpu name='core2duo'/>
-  <cpu name='phenom'/>
-  <cpu name='qemu64'/>
+  <cpu type='tcg' name='Opteron_G5'/>
+  <cpu type='tcg' name='Opteron_G4'/>
+  <cpu type='tcg' name='Opteron_G3'/>
+  <cpu type='tcg' name='Opteron_G2'/>
+  <cpu type='tcg' name='Opteron_G1'/>
+  <cpu type='tcg' name='Haswell'/>
+  <cpu type='tcg' name='SandyBridge'/>
+  <cpu type='tcg' name='Westmere'/>
+  <cpu type='tcg' name='Nehalem'/>
+  <cpu type='tcg' name='Penryn'/>
+  <cpu type='tcg' name='Conroe'/>
+  <cpu type='tcg' name='n270'/>
+  <cpu type='tcg' name='athlon'/>
+  <cpu type='tcg' name='pentium3'/>
+  <cpu type='tcg' name='pentium2'/>
+  <cpu type='tcg' name='pentium'/>
+  <cpu type='tcg' name='486'/>
+  <cpu type='tcg' name='coreduo'/>
+  <cpu type='tcg' name='kvm32'/>
+  <cpu type='tcg' name='qemu32'/>
+  <cpu type='tcg' name='kvm64'/>
+  <cpu type='tcg' name='core2duo'/>
+  <cpu type='tcg' name='phenom'/>
+  <cpu type='tcg' name='qemu64'/>
   <machine name='pc-i440fx-1.7' alias='pc' maxCpus='255'/>
   <machine name='pc-q35-1.4' maxCpus='255'/>
   <machine name='pc-q35-1.5' maxCpus='255'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml
index a8a79af..11b5108 100644
--- a/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml
@@ -165,31 +165,31 @@
   <kvmVersion>0</kvmVersion>
   <package></package>
   <arch>x86_64</arch>
-  <cpu name='Opteron_G5'/>
-  <cpu name='Opteron_G4'/>
-  <cpu name='Opteron_G3'/>
-  <cpu name='Opteron_G2'/>
-  <cpu name='Opteron_G1'/>
-  <cpu name='Broadwell'/>
-  <cpu name='Haswell'/>
-  <cpu name='SandyBridge'/>
-  <cpu name='Westmere'/>
-  <cpu name='Nehalem'/>
-  <cpu name='Penryn'/>
-  <cpu name='Conroe'/>
-  <cpu name='n270'/>
-  <cpu name='athlon'/>
-  <cpu name='pentium3'/>
-  <cpu name='pentium2'/>
-  <cpu name='pentium'/>
-  <cpu name='486'/>
-  <cpu name='coreduo'/>
-  <cpu name='kvm32'/>
-  <cpu name='qemu32'/>
-  <cpu name='kvm64'/>
-  <cpu name='core2duo'/>
-  <cpu name='phenom'/>
-  <cpu name='qemu64'/>
+  <cpu type='tcg' name='Opteron_G5'/>
+  <cpu type='tcg' name='Opteron_G4'/>
+  <cpu type='tcg' name='Opteron_G3'/>
+  <cpu type='tcg' name='Opteron_G2'/>
+  <cpu type='tcg' name='Opteron_G1'/>
+  <cpu type='tcg' name='Broadwell'/>
+  <cpu type='tcg' name='Haswell'/>
+  <cpu type='tcg' name='SandyBridge'/>
+  <cpu type='tcg' name='Westmere'/>
+  <cpu type='tcg' name='Nehalem'/>
+  <cpu type='tcg' name='Penryn'/>
+  <cpu type='tcg' name='Conroe'/>
+  <cpu type='tcg' name='n270'/>
+  <cpu type='tcg' name='athlon'/>
+  <cpu type='tcg' name='pentium3'/>
+  <cpu type='tcg' name='pentium2'/>
+  <cpu type='tcg' name='pentium'/>
+  <cpu type='tcg' name='486'/>
+  <cpu type='tcg' name='coreduo'/>
+  <cpu type='tcg' name='kvm32'/>
+  <cpu type='tcg' name='qemu32'/>
+  <cpu type='tcg' name='kvm64'/>
+  <cpu type='tcg' name='core2duo'/>
+  <cpu type='tcg' name='phenom'/>
+  <cpu type='tcg' name='qemu64'/>
   <machine name='pc-i440fx-2.1' alias='pc' maxCpus='255'/>
   <machine name='pc-1.3' maxCpus='255'/>
   <machine name='pc-0.12' maxCpus='255'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml
index 3162758..e975c30 100644
--- a/tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml
@@ -185,34 +185,34 @@
   <kvmVersion>0</kvmVersion>
   <package></package>
   <arch>x86_64</arch>
-  <cpu name='Opteron_G5'/>
-  <cpu name='Opteron_G4'/>
-  <cpu name='Opteron_G3'/>
-  <cpu name='Opteron_G2'/>
-  <cpu name='Opteron_G1'/>
-  <cpu name='Broadwell'/>
-  <cpu name='Broadwell-noTSX'/>
-  <cpu name='Haswell'/>
-  <cpu name='Haswell-noTSX'/>
-  <cpu name='IvyBridge'/>
-  <cpu name='SandyBridge'/>
-  <cpu name='Westmere'/>
-  <cpu name='Nehalem'/>
-  <cpu name='Penryn'/>
-  <cpu name='Conroe'/>
-  <cpu name='n270'/>
-  <cpu name='athlon'/>
-  <cpu name='pentium3'/>
-  <cpu name='pentium2'/>
-  <cpu name='pentium'/>
-  <cpu name='486'/>
-  <cpu name='coreduo'/>
-  <cpu name='kvm32'/>
-  <cpu name='qemu32'/>
-  <cpu name='kvm64'/>
-  <cpu name='core2duo'/>
-  <cpu name='phenom'/>
-  <cpu name='qemu64'/>
+  <cpu type='tcg' name='Opteron_G5'/>
+  <cpu type='tcg' name='Opteron_G4'/>
+  <cpu type='tcg' name='Opteron_G3'/>
+  <cpu type='tcg' name='Opteron_G2'/>
+  <cpu type='tcg' name='Opteron_G1'/>
+  <cpu type='tcg' name='Broadwell'/>
+  <cpu type='tcg' name='Broadwell-noTSX'/>
+  <cpu type='tcg' name='Haswell'/>
+  <cpu type='tcg' name='Haswell-noTSX'/>
+  <cpu type='tcg' name='IvyBridge'/>
+  <cpu type='tcg' name='SandyBridge'/>
+  <cpu type='tcg' name='Westmere'/>
+  <cpu type='tcg' name='Nehalem'/>
+  <cpu type='tcg' name='Penryn'/>
+  <cpu type='tcg' name='Conroe'/>
+  <cpu type='tcg' name='n270'/>
+  <cpu type='tcg' name='athlon'/>
+  <cpu type='tcg' name='pentium3'/>
+  <cpu type='tcg' name='pentium2'/>
+  <cpu type='tcg' name='pentium'/>
+  <cpu type='tcg' name='486'/>
+  <cpu type='tcg' name='coreduo'/>
+  <cpu type='tcg' name='kvm32'/>
+  <cpu type='tcg' name='qemu32'/>
+  <cpu type='tcg' name='kvm64'/>
+  <cpu type='tcg' name='core2duo'/>
+  <cpu type='tcg' name='phenom'/>
+  <cpu type='tcg' name='qemu64'/>
   <machine name='pc-i440fx-2.4' alias='pc' maxCpus='255'/>
   <machine name='pc-1.3' maxCpus='255'/>
   <machine name='pc-0.12' maxCpus='255'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml
index bea01c7..4dc2807 100644
--- a/tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml
@@ -191,34 +191,34 @@
   <kvmVersion>0</kvmVersion>
   <package></package>
   <arch>x86_64</arch>
-  <cpu name='Opteron_G5'/>
-  <cpu name='Opteron_G4'/>
-  <cpu name='Opteron_G3'/>
-  <cpu name='Opteron_G2'/>
-  <cpu name='Opteron_G1'/>
-  <cpu name='Broadwell'/>
-  <cpu name='Broadwell-noTSX'/>
-  <cpu name='Haswell'/>
-  <cpu name='Haswell-noTSX'/>
-  <cpu name='IvyBridge'/>
-  <cpu name='SandyBridge'/>
-  <cpu name='Westmere'/>
-  <cpu name='Nehalem'/>
-  <cpu name='Penryn'/>
-  <cpu name='Conroe'/>
-  <cpu name='n270'/>
-  <cpu name='athlon'/>
-  <cpu name='pentium3'/>
-  <cpu name='pentium2'/>
-  <cpu name='pentium'/>
-  <cpu name='486'/>
-  <cpu name='coreduo'/>
-  <cpu name='kvm32'/>
-  <cpu name='qemu32'/>
-  <cpu name='kvm64'/>
-  <cpu name='core2duo'/>
-  <cpu name='phenom'/>
-  <cpu name='qemu64'/>
+  <cpu type='tcg' name='Opteron_G5'/>
+  <cpu type='tcg' name='Opteron_G4'/>
+  <cpu type='tcg' name='Opteron_G3'/>
+  <cpu type='tcg' name='Opteron_G2'/>
+  <cpu type='tcg' name='Opteron_G1'/>
+  <cpu type='tcg' name='Broadwell'/>
+  <cpu type='tcg' name='Broadwell-noTSX'/>
+  <cpu type='tcg' name='Haswell'/>
+  <cpu type='tcg' name='Haswell-noTSX'/>
+  <cpu type='tcg' name='IvyBridge'/>
+  <cpu type='tcg' name='SandyBridge'/>
+  <cpu type='tcg' name='Westmere'/>
+  <cpu type='tcg' name='Nehalem'/>
+  <cpu type='tcg' name='Penryn'/>
+  <cpu type='tcg' name='Conroe'/>
+  <cpu type='tcg' name='n270'/>
+  <cpu type='tcg' name='athlon'/>
+  <cpu type='tcg' name='pentium3'/>
+  <cpu type='tcg' name='pentium2'/>
+  <cpu type='tcg' name='pentium'/>
+  <cpu type='tcg' name='486'/>
+  <cpu type='tcg' name='coreduo'/>
+  <cpu type='tcg' name='kvm32'/>
+  <cpu type='tcg' name='qemu32'/>
+  <cpu type='tcg' name='kvm64'/>
+  <cpu type='tcg' name='core2duo'/>
+  <cpu type='tcg' name='phenom'/>
+  <cpu type='tcg' name='qemu64'/>
   <machine name='pc-i440fx-2.5' alias='pc' maxCpus='255'/>
   <machine name='pc-i440fx-2.4' maxCpus='255'/>
   <machine name='pc-1.3' maxCpus='255'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.6.0-gicv2.aarch64.xml b/tests/qemucapabilitiesdata/caps_2.6.0-gicv2.aarch64.xml
index b283444..debee6d 100644
--- a/tests/qemucapabilitiesdata/caps_2.6.0-gicv2.aarch64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.6.0-gicv2.aarch64.xml
@@ -166,36 +166,36 @@
   <kvmVersion>0</kvmVersion>
   <package></package>
   <arch>aarch64</arch>
-  <cpu name='pxa262'/>
-  <cpu name='pxa270-a0'/>
-  <cpu name='arm1136'/>
-  <cpu name='cortex-a15'/>
-  <cpu name='pxa260'/>
-  <cpu name='arm1136-r2'/>
-  <cpu name='pxa261'/>
-  <cpu name='pxa255'/>
-  <cpu name='arm926'/>
-  <cpu name='arm11mpcore'/>
-  <cpu name='pxa250'/>
-  <cpu name='ti925t'/>
-  <cpu name='cortex-a57'/>
-  <cpu name='sa1110'/>
-  <cpu name='arm1176'/>
-  <cpu name='cortex-a53'/>
-  <cpu name='sa1100'/>
-  <cpu name='pxa270-c5'/>
-  <cpu name='cortex-a9'/>
-  <cpu name='cortex-a8'/>
-  <cpu name='pxa270-c0'/>
-  <cpu name='arm1026'/>
-  <cpu name='pxa270-b1'/>
-  <cpu name='cortex-m3'/>
-  <cpu name='cortex-m4'/>
-  <cpu name='pxa270-b0'/>
-  <cpu name='arm946'/>
-  <cpu name='cortex-r5'/>
-  <cpu name='pxa270-a1'/>
-  <cpu name='pxa270'/>
+  <cpu type='tcg' name='pxa262'/>
+  <cpu type='tcg' name='pxa270-a0'/>
+  <cpu type='tcg' name='arm1136'/>
+  <cpu type='tcg' name='cortex-a15'/>
+  <cpu type='tcg' name='pxa260'/>
+  <cpu type='tcg' name='arm1136-r2'/>
+  <cpu type='tcg' name='pxa261'/>
+  <cpu type='tcg' name='pxa255'/>
+  <cpu type='tcg' name='arm926'/>
+  <cpu type='tcg' name='arm11mpcore'/>
+  <cpu type='tcg' name='pxa250'/>
+  <cpu type='tcg' name='ti925t'/>
+  <cpu type='tcg' name='cortex-a57'/>
+  <cpu type='tcg' name='sa1110'/>
+  <cpu type='tcg' name='arm1176'/>
+  <cpu type='tcg' name='cortex-a53'/>
+  <cpu type='tcg' name='sa1100'/>
+  <cpu type='tcg' name='pxa270-c5'/>
+  <cpu type='tcg' name='cortex-a9'/>
+  <cpu type='tcg' name='cortex-a8'/>
+  <cpu type='tcg' name='pxa270-c0'/>
+  <cpu type='tcg' name='arm1026'/>
+  <cpu type='tcg' name='pxa270-b1'/>
+  <cpu type='tcg' name='cortex-m3'/>
+  <cpu type='tcg' name='cortex-m4'/>
+  <cpu type='tcg' name='pxa270-b0'/>
+  <cpu type='tcg' name='arm946'/>
+  <cpu type='tcg' name='cortex-r5'/>
+  <cpu type='tcg' name='pxa270-a1'/>
+  <cpu type='tcg' name='pxa270'/>
   <machine name='integratorcp' maxCpus='1'/>
   <machine name='nuri' maxCpus='2'/>
   <machine name='verdex' maxCpus='1'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.6.0-gicv3.aarch64.xml b/tests/qemucapabilitiesdata/caps_2.6.0-gicv3.aarch64.xml
index 612a747..d5a4cbb 100644
--- a/tests/qemucapabilitiesdata/caps_2.6.0-gicv3.aarch64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.6.0-gicv3.aarch64.xml
@@ -166,36 +166,36 @@
   <kvmVersion>0</kvmVersion>
   <package></package>
   <arch>aarch64</arch>
-  <cpu name='pxa262'/>
-  <cpu name='pxa270-a0'/>
-  <cpu name='arm1136'/>
-  <cpu name='cortex-a15'/>
-  <cpu name='pxa260'/>
-  <cpu name='arm1136-r2'/>
-  <cpu name='pxa261'/>
-  <cpu name='pxa255'/>
-  <cpu name='arm926'/>
-  <cpu name='arm11mpcore'/>
-  <cpu name='pxa250'/>
-  <cpu name='ti925t'/>
-  <cpu name='cortex-a57'/>
-  <cpu name='sa1110'/>
-  <cpu name='arm1176'/>
-  <cpu name='cortex-a53'/>
-  <cpu name='sa1100'/>
-  <cpu name='pxa270-c5'/>
-  <cpu name='cortex-a9'/>
-  <cpu name='cortex-a8'/>
-  <cpu name='pxa270-c0'/>
-  <cpu name='arm1026'/>
-  <cpu name='pxa270-b1'/>
-  <cpu name='cortex-m3'/>
-  <cpu name='cortex-m4'/>
-  <cpu name='pxa270-b0'/>
-  <cpu name='arm946'/>
-  <cpu name='cortex-r5'/>
-  <cpu name='pxa270-a1'/>
-  <cpu name='pxa270'/>
+  <cpu type='tcg' name='pxa262'/>
+  <cpu type='tcg' name='pxa270-a0'/>
+  <cpu type='tcg' name='arm1136'/>
+  <cpu type='tcg' name='cortex-a15'/>
+  <cpu type='tcg' name='pxa260'/>
+  <cpu type='tcg' name='arm1136-r2'/>
+  <cpu type='tcg' name='pxa261'/>
+  <cpu type='tcg' name='pxa255'/>
+  <cpu type='tcg' name='arm926'/>
+  <cpu type='tcg' name='arm11mpcore'/>
+  <cpu type='tcg' name='pxa250'/>
+  <cpu type='tcg' name='ti925t'/>
+  <cpu type='tcg' name='cortex-a57'/>
+  <cpu type='tcg' name='sa1110'/>
+  <cpu type='tcg' name='arm1176'/>
+  <cpu type='tcg' name='cortex-a53'/>
+  <cpu type='tcg' name='sa1100'/>
+  <cpu type='tcg' name='pxa270-c5'/>
+  <cpu type='tcg' name='cortex-a9'/>
+  <cpu type='tcg' name='cortex-a8'/>
+  <cpu type='tcg' name='pxa270-c0'/>
+  <cpu type='tcg' name='arm1026'/>
+  <cpu type='tcg' name='pxa270-b1'/>
+  <cpu type='tcg' name='cortex-m3'/>
+  <cpu type='tcg' name='cortex-m4'/>
+  <cpu type='tcg' name='pxa270-b0'/>
+  <cpu type='tcg' name='arm946'/>
+  <cpu type='tcg' name='cortex-r5'/>
+  <cpu type='tcg' name='pxa270-a1'/>
+  <cpu type='tcg' name='pxa270'/>
   <machine name='integratorcp' maxCpus='1'/>
   <machine name='nuri' maxCpus='2'/>
   <machine name='verdex' maxCpus='1'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.6.0.ppc64le.xml b/tests/qemucapabilitiesdata/caps_2.6.0.ppc64le.xml
index 5f22ed5..b53a613 100644
--- a/tests/qemucapabilitiesdata/caps_2.6.0.ppc64le.xml
+++ b/tests/qemucapabilitiesdata/caps_2.6.0.ppc64le.xml
@@ -163,436 +163,436 @@
   <kvmVersion>0</kvmVersion>
   <package></package>
   <arch>ppc64</arch>
-  <cpu name='default'/>
-  <cpu name='ppc'/>
-  <cpu name='ppc32'/>
-  <cpu name='ppc64'/>
-  <cpu name='970mp'/>
-  <cpu name='970fx'/>
-  <cpu name='970'/>
-  <cpu name='POWER8NVL'/>
-  <cpu name='POWER8'/>
-  <cpu name='POWER8E'/>
-  <cpu name='POWER7+'/>
-  <cpu name='POWER7'/>
-  <cpu name='POWER5gs'/>
-  <cpu name='POWER5+'/>
-  <cpu name='Apollo7PM'/>
-  <cpu name='7457A'/>
-  <cpu name='7447A'/>
-  <cpu name='Apollo7'/>
-  <cpu name='7457'/>
-  <cpu name='Apollo6'/>
-  <cpu name='7455'/>
-  <cpu name='7445'/>
-  <cpu name='7451'/>
-  <cpu name='7441'/>
-  <cpu name='Vger'/>
-  <cpu name='7450'/>
-  <cpu name='7448'/>
-  <cpu name='Nitro'/>
-  <cpu name='7410'/>
-  <cpu name='G4'/>
-  <cpu name='Max'/>
-  <cpu name='7400'/>
-  <cpu name='Goldfinger'/>
-  <cpu name='755'/>
-  <cpu name='745'/>
-  <cpu name='LoneStar'/>
-  <cpu name='750l'/>
-  <cpu name='750gx'/>
-  <cpu name='750fx'/>
-  <cpu name='750cxe'/>
-  <cpu name='750cx'/>
-  <cpu name='750cl'/>
-  <cpu name='Conan/Doyle'/>
-  <cpu name='G3'/>
-  <cpu name='Typhoon'/>
-  <cpu name='750'/>
-  <cpu name='Arthur'/>
-  <cpu name='740'/>
-  <cpu name='Mach5'/>
-  <cpu name='Sirocco'/>
-  <cpu name='604e'/>
-  <cpu name='Goldeneye'/>
-  <cpu name='603r'/>
-  <cpu name='Vaillant'/>
-  <cpu name='Stretch'/>
-  <cpu name='603e'/>
-  <cpu name='Vanilla'/>
-  <cpu name='601v'/>
-  <cpu name='601'/>
-  <cpu name='MPC8560'/>
-  <cpu name='MPC8555E'/>
-  <cpu name='MPC8555'/>
-  <cpu name='MPC8548E'/>
-  <cpu name='MPC8548'/>
-  <cpu name='MPC8547E'/>
-  <cpu name='MPC8545E'/>
-  <cpu name='MPC8545'/>
-  <cpu name='MPC8544E'/>
-  <cpu name='MPC8544'/>
-  <cpu name='MPC8543E'/>
-  <cpu name='MPC8543'/>
-  <cpu name='MPC8541E'/>
-  <cpu name='MPC8541'/>
-  <cpu name='MPC8540'/>
-  <cpu name='MPC8533E'/>
-  <cpu name='MPC8533'/>
-  <cpu name='e500v2'/>
-  <cpu name='e500v1'/>
-  <cpu name='e500'/>
-  <cpu name='MPC8347EA'/>
-  <cpu name='MPC8347E'/>
-  <cpu name='MPC8347A'/>
-  <cpu name='MPC8347'/>
-  <cpu name='e300'/>
-  <cpu name='e200'/>
-  <cpu name='MPC8280'/>
-  <cpu name='MPC8275'/>
-  <cpu name='MPC8272'/>
-  <cpu name='MPC8271'/>
-  <cpu name='MPC8270'/>
-  <cpu name='MPC8266_HiP4'/>
-  <cpu name='MPC8266_HiP3'/>
-  <cpu name='MPC8266'/>
-  <cpu name='MPC8265_HiP4'/>
-  <cpu name='MPC8265_HiP3'/>
-  <cpu name='MPC8265'/>
-  <cpu name='MPC8264_HiP4'/>
-  <cpu name='MPC8264_HiP3'/>
-  <cpu name='MPC8264'/>
-  <cpu name='MPC8260_HiP4'/>
-  <cpu name='MPC8260_HiP3'/>
-  <cpu name='MPC8260'/>
-  <cpu name='MPC8255_HiP4'/>
-  <cpu name='MPC8255_HiP3'/>
-  <cpu name='MPC8255'/>
-  <cpu name='MPC8250_HiP4'/>
-  <cpu name='MPC8250_HiP3'/>
-  <cpu name='MPC8250'/>
-  <cpu name='MPC8248'/>
-  <cpu name='MPC8247'/>
-  <cpu name='MPC8245'/>
-  <cpu name='MPC8241'/>
-  <cpu name='PowerQUICC-II'/>
-  <cpu name='MPC82xx'/>
-  <cpu name='MPC5200B'/>
-  <cpu name='MPC5200'/>
-  <cpu name='MPC52xx'/>
-  <cpu name='MPC8240'/>
-  <cpu name='440EP'/>
-  <cpu name='x2vp50'/>
-  <cpu name='x2vp7'/>
-  <cpu name='405GPe'/>
-  <cpu name='405GP'/>
-  <cpu name='405CR'/>
-  <cpu name='405'/>
-  <cpu name='403'/>
-  <cpu name='750cl_v1.0'/>
-  <cpu name='750cxe_v2.1'/>
-  <cpu name='7457A_v1.2'/>
-  <cpu name='755_v2.7'/>
-  <cpu name='MPC8347ET'/>
-  <cpu name='MPC8545E_v20'/>
-  <cpu name='750_v2.1'/>
-  <cpu name='755_v2.2'/>
-  <cpu name='745_v2.0'/>
-  <cpu name='7455_v1.0'/>
-  <cpu name='MPC8547E_v21'/>
-  <cpu name='STB25'/>
-  <cpu name='POWER8_v2.0'/>
-  <cpu name='401G2'/>
-  <cpu name='MPC8349A'/>
-  <cpu name='750e'/>
-  <cpu name='MPC8545_v21'/>
-  <cpu name='MPC8548_v11'/>
-  <cpu name='970fx_v2.0'/>
-  <cpu name='750fx_v2.0'/>
-  <cpu name='POWER8E_v2.1'/>
-  <cpu name='Cobra'/>
-  <cpu name='603p'/>
-  <cpu name='7400_v2.7'/>
-  <cpu name='MPC8378E'/>
-  <cpu name='e500v2_v10'/>
-  <cpu name='e500mc'/>
-  <cpu name='603e7v1'/>
-  <cpu name='970mp_v1.0'/>
-  <cpu name='MPC8555E_v11'/>
-  <cpu name='440-Xilinx-w-dfpu'/>
-  <cpu name='740e'/>
-  <cpu name='405CRc'/>
-  <cpu name='7447A_v1.1'/>
-  <cpu name='MPC8543_v11'/>
-  <cpu name='MPC8533E_v10'/>
-  <cpu name='MPC8540_v21'/>
-  <cpu name='e500v2_v21'/>
-  <cpu name='e300c1'/>
-  <cpu name='7400_v2.2'/>
-  <cpu name='970fx_v1.0'/>
-  <cpu name='750gx_v1.2'/>
-  <cpu name='750fx_v1.0'/>
-  <cpu name='MPC8641'/>
-  <cpu name='MPC8544E_v10'/>
-  <cpu name='405D4'/>
-  <cpu name='7457_v1.1'/>
-  <cpu name='970fx_v3.0'/>
-  <cpu name='604e_v2.2'/>
-  <cpu name='755_v2.6'/>
-  <cpu name='7410_v1.4'/>
-  <cpu name='Npe4GS3'/>
-  <cpu name='745_v2.4'/>
-  <cpu name='750_v2.0'/>
-  <cpu name='7445_v3.2'/>
-  <cpu name='750l_v3.2'/>
-  <cpu name='MPC8540_v10'/>
-  <cpu name='750_v1.0'/>
-  <cpu name='MPC8343A'/>
-  <cpu name='MPC8378'/>
-  <cpu name='G2HiP3'/>
-  <cpu name='750cxe_v3.0'/>
-  <cpu name='e500_v10'/>
-  <cpu name='STB03'/>
-  <cpu name='MPC8567'/>
-  <cpu name='MPC8545_v20'/>
-  <cpu name='MPC8548_v10'/>
-  <cpu name='755_v1.1'/>
-  <cpu name='603e7v'/>
-  <cpu name='Npe405H2'/>
-  <cpu name='750_v3.0'/>
-  <cpu name='Npe405H'/>
-  <cpu name='7400_v2.6'/>
-  <cpu name='405GPa'/>
-  <cpu name='MPC8548_v21'/>
-  <cpu name='MPC8541E_v10'/>
-  <cpu name='750l_v2.2'/>
-  <cpu name='MPC8555E_v10'/>
-  <cpu name='7457A_v1.1'/>
-  <cpu name='e200z6'/>
-  <cpu name='MPC8379E'/>
-  <cpu name='e500v2_v20'/>
-  <cpu name='MPC8347AP'/>
-  <cpu name='401B2'/>
-  <cpu name='MPC8349E'/>
-  <cpu name='755_v2.1'/>
-  <cpu name='MPC8543_v21'/>
-  <cpu name='MPC8547E_v20'/>
-  <cpu name='745_v2.8'/>
-  <cpu name='7455_v3.4'/>
-  <cpu name='7448_v1.1'/>
-  <cpu name='740_v2.2'/>
-  <cpu name='7400_v1.1'/>
-  <cpu name='MPC8567E'/>
-  <cpu name='7441_v2.10'/>
-  <cpu name='603e_v1.4'/>
-  <cpu name='G2leGP1'/>
-  <cpu name='7451_v2.10'/>
-  <cpu name='MPC8343E'/>
-  <cpu name='750cx_v2.2'/>
-  <cpu name='Npe405L'/>
-  <cpu name='603e7'/>
-  <cpu name='401A1'/>
-  <cpu name='MPC8377'/>
-  <cpu name='7448_v2.1'/>
-  <cpu name='7441_v2.3'/>
-  <cpu name='7400_v2.1'/>
-  <cpu name='405CRb'/>
-  <cpu name='604'/>
-  <cpu name='MPC8540_v20'/>
-  <cpu name='MPC8543_v10'/>
-  <cpu name='7447A_v1.0'/>
-  <cpu name='7445_v2.1'/>
-  <cpu name='e500_v20'/>
-  <cpu name='750gx_v1.1'/>
-  <cpu name='MPC8543E_v11'/>
-  <cpu name='750cxe_v2.4'/>
-  <cpu name='MPC8548_v20'/>
-  <cpu name='MPC8347AT'/>
-  <cpu name='POWER8NVL_v1.0'/>
-  <cpu name='7457A_v1.0'/>
-  <cpu name='7457_v1.0'/>
-  <cpu name='7450_v1.2'/>
-  <cpu name='MPC8572'/>
-  <cpu name='755_v2.5'/>
-  <cpu name='7410_v1.3'/>
-  <cpu name='745_v2.3'/>
-  <cpu name='750l_v2.1'/>
-  <cpu name='405GPR'/>
-  <cpu name='755_v2.0'/>
-  <cpu name='MPC8541_v11'/>
-  <cpu name='401C2'/>
-  <cpu name='e500v2_v30'/>
-  <cpu name='7455_v3.3'/>
-  <cpu name='405EZ'/>
-  <cpu name='MPC8568E'/>
-  <cpu name='755_v1.0'/>
-  <cpu name='603e_v1.3'/>
-  <cpu name='MPC8560_v10'/>
-  <cpu name='MPC8560_v21'/>
-  <cpu name='G2H4'/>
-  <cpu name='MPC8533_v11'/>
-  <cpu name='740_v3.1'/>
-  <cpu name='e200z5'/>
-  <cpu name='MPC8349'/>
-  <cpu name='7400_v2.0'/>
-  <cpu name='405CRa'/>
-  <cpu name='MPC8543E_v10'/>
-  <cpu name='MPC8543E_v21'/>
-  <cpu name='750cxe_v2.3'/>
-  <cpu name='MPC8543_v20'/>
-  <cpu name='745_v2.7'/>
-  <cpu name='403GC'/>
-  <cpu name='e5500'/>
-  <cpu name='7448_v1.0'/>
-  <cpu name='MPC5200_v12'/>
-  <cpu name='740_v2.1'/>
-  <cpu name='745_v2.2'/>
-  <cpu name='7400_v1.0'/>
-  <cpu name='7410_v1.2'/>
-  <cpu name='x2vp4'/>
-  <cpu name='MPC8555_v11'/>
-  <cpu name='MPC8541_v10'/>
-  <cpu name='405LP'/>
-  <cpu name='750fx_v2.3'/>
-  <cpu name='405EP'/>
-  <cpu name='601_v2'/>
-  <cpu name='MPC8544_v11'/>
-  <cpu name='401D2'/>
-  <cpu name='MPC8572E'/>
-  <cpu name='604e_v1.0'/>
-  <cpu name='750cx_v2.1'/>
-  <cpu name='MPC5200B_v21'/>
-  <cpu name='750l_v3.0'/>
-  <cpu name='e300c4'/>
-  <cpu name='7448_v2.0'/>
-  <cpu name='7450_v2.1'/>
-  <cpu name='G2leGP'/>
-  <cpu name='750cxe_v3.1b'/>
-  <cpu name='7400_v2.9'/>
-  <cpu name='G2GP'/>
-  <cpu name='603'/>
-  <cpu name='405GPd'/>
-  <cpu name='MPC8548E_v11'/>
-  <cpu name='603e7t'/>
-  <cpu name='IOP480'/>
-  <cpu name='750gx_v1.0'/>
-  <cpu name='MPC8560_v20'/>
-  <cpu name='405D2'/>
-  <cpu name='750fl'/>
-  <cpu name='750l_v2.0'/>
-  <cpu name='x2vp20'/>
-  <cpu name='e600'/>
-  <cpu name='7450_v1.1'/>
-  <cpu name='755_v2.4'/>
-  <cpu name='7445_v1.0'/>
-  <cpu name='G2LS'/>
-  <cpu name='MPC8543E_v20'/>
-  <cpu name='7447_v1.1'/>
-  <cpu name='603e_v2.2'/>
-  <cpu name='603e_v4'/>
-  <cpu name='7455_v3.2'/>
-  <cpu name='740_v2.0'/>
-  <cpu name='MPC8347P'/>
-  <cpu name='440EPb'/>
-  <cpu name='MPC603'/>
-  <cpu name='603e_v1.2'/>
-  <cpu name='750fx_v2.2'/>
-  <cpu name='740_v1.0'/>
-  <cpu name='MPC8544_v10'/>
-  <cpu name='601_v1'/>
-  <cpu name='745_v1.1'/>
-  <cpu name='POWER7+_v2.1'/>
-  <cpu name='750cx_v2.0'/>
-  <cpu name='MPC8347EAP'/>
-  <cpu name='401E2'/>
-  <cpu name='MPC8641D'/>
-  <cpu name='e300c3'/>
-  <cpu name='MPC8533_v10'/>
-  <cpu name='7441_v2.1'/>
-  <cpu name='740_v3.0'/>
-  <cpu name='POWER5+_v2.1'/>
-  <cpu name='602'/>
-  <cpu name='MPC8548E_v10'/>
-  <cpu name='G2leLS'/>
-  <cpu name='MPC8343'/>
-  <cpu name='750cx_v1.0'/>
-  <cpu name='750cxe_v2.2'/>
-  <cpu name='604e_v2.4'/>
-  <cpu name='755_v2.8'/>
-  <cpu name='MPC8548E_v21'/>
-  <cpu name='745_v2.6'/>
-  <cpu name='G2le'/>
-  <cpu name='403GB'/>
-  <cpu name='MPC8545E_v21'/>
-  <cpu name='POWER7_v2.3'/>
-  <cpu name='750_v2.2'/>
-  <cpu name='7450_v1.0'/>
-  <cpu name='MPC5200_v11'/>
-  <cpu name='755_v2.3'/>
-  <cpu name='MPC8347EP'/>
-  <cpu name='7410_v1.1'/>
-  <cpu name='750gl'/>
-  <cpu name='403GCX'/>
-  <cpu name='750p'/>
-  <cpu name='745_v2.1'/>
-  <cpu name='7445_v3.4'/>
-  <cpu name='G2'/>
-  <cpu name='MPC8555_v10'/>
-  <cpu name='MPC8347T'/>
-  <cpu name='603e_v3'/>
-  <cpu name='970_v2.2'/>
-  <cpu name='440-Xilinx'/>
-  <cpu name='740p'/>
-  <cpu name='MPC5200B_v20'/>
-  <cpu name='440EPX'/>
-  <cpu name='603e_v1.1'/>
-  <cpu name='7451_v2.3'/>
-  <cpu name='7450_v2.0'/>
-  <cpu name='7400_v2.8'/>
-  <cpu name='7455_v2.1'/>
-  <cpu name='405GPc'/>
-  <cpu name='MPC8347EAT'/>
-  <cpu name='970mp_v1.1'/>
-  <cpu name='603e7v2'/>
-  <cpu name='604r'/>
-  <cpu name='7447A_v1.2'/>
-  <cpu name='MPC8533E_v11'/>
-  <cpu name='e500v2_v22'/>
-  <cpu name='401F2'/>
-  <cpu name='MPC8343EA'/>
-  <cpu name='7457_v1.2'/>
-  <cpu name='970fx_v3.1'/>
-  <cpu name='7447_v1.0'/>
-  <cpu name='745_v2.5'/>
-  <cpu name='MPC8548E_v20'/>
-  <cpu name='MPC8610'/>
-  <cpu name='403GA'/>
-  <cpu name='750cxe_v2.4b'/>
-  <cpu name='MPC5200_v10'/>
-  <cpu name='7410_v1.0'/>
-  <cpu name='G2leGP3'/>
-  <cpu name='603e_v4.1'/>
-  <cpu name='7445_v3.3'/>
-  <cpu name='440EPa'/>
-  <cpu name='970fx_v2.1'/>
-  <cpu name='MPC8377E'/>
-  <cpu name='750fx_v2.1'/>
-  <cpu name='601_v0'/>
-  <cpu name='STB04'/>
-  <cpu name='745_v1.0'/>
-  <cpu name='G2HiP4'/>
-  <cpu name='750cl_v2.0'/>
-  <cpu name='750cxr'/>
-  <cpu name='MPC8349EA'/>
-  <cpu name='750cxe_v3.1'/>
-  <cpu name='401'/>
-  <cpu name='MPC8379'/>
-  <cpu name='MPC8568'/>
-  <cpu name='e300c2'/>
-  <cpu name='750_v3.1'/>
-  <cpu name='MPC8544E_v11'/>
-  <cpu name='405GPb'/>
-  <cpu name='MPC8541E_v11'/>
+  <cpu type='tcg' name='default'/>
+  <cpu type='tcg' name='ppc'/>
+  <cpu type='tcg' name='ppc32'/>
+  <cpu type='tcg' name='ppc64'/>
+  <cpu type='tcg' name='970mp'/>
+  <cpu type='tcg' name='970fx'/>
+  <cpu type='tcg' name='970'/>
+  <cpu type='tcg' name='POWER8NVL'/>
+  <cpu type='tcg' name='POWER8'/>
+  <cpu type='tcg' name='POWER8E'/>
+  <cpu type='tcg' name='POWER7+'/>
+  <cpu type='tcg' name='POWER7'/>
+  <cpu type='tcg' name='POWER5gs'/>
+  <cpu type='tcg' name='POWER5+'/>
+  <cpu type='tcg' name='Apollo7PM'/>
+  <cpu type='tcg' name='7457A'/>
+  <cpu type='tcg' name='7447A'/>
+  <cpu type='tcg' name='Apollo7'/>
+  <cpu type='tcg' name='7457'/>
+  <cpu type='tcg' name='Apollo6'/>
+  <cpu type='tcg' name='7455'/>
+  <cpu type='tcg' name='7445'/>
+  <cpu type='tcg' name='7451'/>
+  <cpu type='tcg' name='7441'/>
+  <cpu type='tcg' name='Vger'/>
+  <cpu type='tcg' name='7450'/>
+  <cpu type='tcg' name='7448'/>
+  <cpu type='tcg' name='Nitro'/>
+  <cpu type='tcg' name='7410'/>
+  <cpu type='tcg' name='G4'/>
+  <cpu type='tcg' name='Max'/>
+  <cpu type='tcg' name='7400'/>
+  <cpu type='tcg' name='Goldfinger'/>
+  <cpu type='tcg' name='755'/>
+  <cpu type='tcg' name='745'/>
+  <cpu type='tcg' name='LoneStar'/>
+  <cpu type='tcg' name='750l'/>
+  <cpu type='tcg' name='750gx'/>
+  <cpu type='tcg' name='750fx'/>
+  <cpu type='tcg' name='750cxe'/>
+  <cpu type='tcg' name='750cx'/>
+  <cpu type='tcg' name='750cl'/>
+  <cpu type='tcg' name='Conan/Doyle'/>
+  <cpu type='tcg' name='G3'/>
+  <cpu type='tcg' name='Typhoon'/>
+  <cpu type='tcg' name='750'/>
+  <cpu type='tcg' name='Arthur'/>
+  <cpu type='tcg' name='740'/>
+  <cpu type='tcg' name='Mach5'/>
+  <cpu type='tcg' name='Sirocco'/>
+  <cpu type='tcg' name='604e'/>
+  <cpu type='tcg' name='Goldeneye'/>
+  <cpu type='tcg' name='603r'/>
+  <cpu type='tcg' name='Vaillant'/>
+  <cpu type='tcg' name='Stretch'/>
+  <cpu type='tcg' name='603e'/>
+  <cpu type='tcg' name='Vanilla'/>
+  <cpu type='tcg' name='601v'/>
+  <cpu type='tcg' name='601'/>
+  <cpu type='tcg' name='MPC8560'/>
+  <cpu type='tcg' name='MPC8555E'/>
+  <cpu type='tcg' name='MPC8555'/>
+  <cpu type='tcg' name='MPC8548E'/>
+  <cpu type='tcg' name='MPC8548'/>
+  <cpu type='tcg' name='MPC8547E'/>
+  <cpu type='tcg' name='MPC8545E'/>
+  <cpu type='tcg' name='MPC8545'/>
+  <cpu type='tcg' name='MPC8544E'/>
+  <cpu type='tcg' name='MPC8544'/>
+  <cpu type='tcg' name='MPC8543E'/>
+  <cpu type='tcg' name='MPC8543'/>
+  <cpu type='tcg' name='MPC8541E'/>
+  <cpu type='tcg' name='MPC8541'/>
+  <cpu type='tcg' name='MPC8540'/>
+  <cpu type='tcg' name='MPC8533E'/>
+  <cpu type='tcg' name='MPC8533'/>
+  <cpu type='tcg' name='e500v2'/>
+  <cpu type='tcg' name='e500v1'/>
+  <cpu type='tcg' name='e500'/>
+  <cpu type='tcg' name='MPC8347EA'/>
+  <cpu type='tcg' name='MPC8347E'/>
+  <cpu type='tcg' name='MPC8347A'/>
+  <cpu type='tcg' name='MPC8347'/>
+  <cpu type='tcg' name='e300'/>
+  <cpu type='tcg' name='e200'/>
+  <cpu type='tcg' name='MPC8280'/>
+  <cpu type='tcg' name='MPC8275'/>
+  <cpu type='tcg' name='MPC8272'/>
+  <cpu type='tcg' name='MPC8271'/>
+  <cpu type='tcg' name='MPC8270'/>
+  <cpu type='tcg' name='MPC8266_HiP4'/>
+  <cpu type='tcg' name='MPC8266_HiP3'/>
+  <cpu type='tcg' name='MPC8266'/>
+  <cpu type='tcg' name='MPC8265_HiP4'/>
+  <cpu type='tcg' name='MPC8265_HiP3'/>
+  <cpu type='tcg' name='MPC8265'/>
+  <cpu type='tcg' name='MPC8264_HiP4'/>
+  <cpu type='tcg' name='MPC8264_HiP3'/>
+  <cpu type='tcg' name='MPC8264'/>
+  <cpu type='tcg' name='MPC8260_HiP4'/>
+  <cpu type='tcg' name='MPC8260_HiP3'/>
+  <cpu type='tcg' name='MPC8260'/>
+  <cpu type='tcg' name='MPC8255_HiP4'/>
+  <cpu type='tcg' name='MPC8255_HiP3'/>
+  <cpu type='tcg' name='MPC8255'/>
+  <cpu type='tcg' name='MPC8250_HiP4'/>
+  <cpu type='tcg' name='MPC8250_HiP3'/>
+  <cpu type='tcg' name='MPC8250'/>
+  <cpu type='tcg' name='MPC8248'/>
+  <cpu type='tcg' name='MPC8247'/>
+  <cpu type='tcg' name='MPC8245'/>
+  <cpu type='tcg' name='MPC8241'/>
+  <cpu type='tcg' name='PowerQUICC-II'/>
+  <cpu type='tcg' name='MPC82xx'/>
+  <cpu type='tcg' name='MPC5200B'/>
+  <cpu type='tcg' name='MPC5200'/>
+  <cpu type='tcg' name='MPC52xx'/>
+  <cpu type='tcg' name='MPC8240'/>
+  <cpu type='tcg' name='440EP'/>
+  <cpu type='tcg' name='x2vp50'/>
+  <cpu type='tcg' name='x2vp7'/>
+  <cpu type='tcg' name='405GPe'/>
+  <cpu type='tcg' name='405GP'/>
+  <cpu type='tcg' name='405CR'/>
+  <cpu type='tcg' name='405'/>
+  <cpu type='tcg' name='403'/>
+  <cpu type='tcg' name='750cl_v1.0'/>
+  <cpu type='tcg' name='750cxe_v2.1'/>
+  <cpu type='tcg' name='7457A_v1.2'/>
+  <cpu type='tcg' name='755_v2.7'/>
+  <cpu type='tcg' name='MPC8347ET'/>
+  <cpu type='tcg' name='MPC8545E_v20'/>
+  <cpu type='tcg' name='750_v2.1'/>
+  <cpu type='tcg' name='755_v2.2'/>
+  <cpu type='tcg' name='745_v2.0'/>
+  <cpu type='tcg' name='7455_v1.0'/>
+  <cpu type='tcg' name='MPC8547E_v21'/>
+  <cpu type='tcg' name='STB25'/>
+  <cpu type='tcg' name='POWER8_v2.0'/>
+  <cpu type='tcg' name='401G2'/>
+  <cpu type='tcg' name='MPC8349A'/>
+  <cpu type='tcg' name='750e'/>
+  <cpu type='tcg' name='MPC8545_v21'/>
+  <cpu type='tcg' name='MPC8548_v11'/>
+  <cpu type='tcg' name='970fx_v2.0'/>
+  <cpu type='tcg' name='750fx_v2.0'/>
+  <cpu type='tcg' name='POWER8E_v2.1'/>
+  <cpu type='tcg' name='Cobra'/>
+  <cpu type='tcg' name='603p'/>
+  <cpu type='tcg' name='7400_v2.7'/>
+  <cpu type='tcg' name='MPC8378E'/>
+  <cpu type='tcg' name='e500v2_v10'/>
+  <cpu type='tcg' name='e500mc'/>
+  <cpu type='tcg' name='603e7v1'/>
+  <cpu type='tcg' name='970mp_v1.0'/>
+  <cpu type='tcg' name='MPC8555E_v11'/>
+  <cpu type='tcg' name='440-Xilinx-w-dfpu'/>
+  <cpu type='tcg' name='740e'/>
+  <cpu type='tcg' name='405CRc'/>
+  <cpu type='tcg' name='7447A_v1.1'/>
+  <cpu type='tcg' name='MPC8543_v11'/>
+  <cpu type='tcg' name='MPC8533E_v10'/>
+  <cpu type='tcg' name='MPC8540_v21'/>
+  <cpu type='tcg' name='e500v2_v21'/>
+  <cpu type='tcg' name='e300c1'/>
+  <cpu type='tcg' name='7400_v2.2'/>
+  <cpu type='tcg' name='970fx_v1.0'/>
+  <cpu type='tcg' name='750gx_v1.2'/>
+  <cpu type='tcg' name='750fx_v1.0'/>
+  <cpu type='tcg' name='MPC8641'/>
+  <cpu type='tcg' name='MPC8544E_v10'/>
+  <cpu type='tcg' name='405D4'/>
+  <cpu type='tcg' name='7457_v1.1'/>
+  <cpu type='tcg' name='970fx_v3.0'/>
+  <cpu type='tcg' name='604e_v2.2'/>
+  <cpu type='tcg' name='755_v2.6'/>
+  <cpu type='tcg' name='7410_v1.4'/>
+  <cpu type='tcg' name='Npe4GS3'/>
+  <cpu type='tcg' name='745_v2.4'/>
+  <cpu type='tcg' name='750_v2.0'/>
+  <cpu type='tcg' name='7445_v3.2'/>
+  <cpu type='tcg' name='750l_v3.2'/>
+  <cpu type='tcg' name='MPC8540_v10'/>
+  <cpu type='tcg' name='750_v1.0'/>
+  <cpu type='tcg' name='MPC8343A'/>
+  <cpu type='tcg' name='MPC8378'/>
+  <cpu type='tcg' name='G2HiP3'/>
+  <cpu type='tcg' name='750cxe_v3.0'/>
+  <cpu type='tcg' name='e500_v10'/>
+  <cpu type='tcg' name='STB03'/>
+  <cpu type='tcg' name='MPC8567'/>
+  <cpu type='tcg' name='MPC8545_v20'/>
+  <cpu type='tcg' name='MPC8548_v10'/>
+  <cpu type='tcg' name='755_v1.1'/>
+  <cpu type='tcg' name='603e7v'/>
+  <cpu type='tcg' name='Npe405H2'/>
+  <cpu type='tcg' name='750_v3.0'/>
+  <cpu type='tcg' name='Npe405H'/>
+  <cpu type='tcg' name='7400_v2.6'/>
+  <cpu type='tcg' name='405GPa'/>
+  <cpu type='tcg' name='MPC8548_v21'/>
+  <cpu type='tcg' name='MPC8541E_v10'/>
+  <cpu type='tcg' name='750l_v2.2'/>
+  <cpu type='tcg' name='MPC8555E_v10'/>
+  <cpu type='tcg' name='7457A_v1.1'/>
+  <cpu type='tcg' name='e200z6'/>
+  <cpu type='tcg' name='MPC8379E'/>
+  <cpu type='tcg' name='e500v2_v20'/>
+  <cpu type='tcg' name='MPC8347AP'/>
+  <cpu type='tcg' name='401B2'/>
+  <cpu type='tcg' name='MPC8349E'/>
+  <cpu type='tcg' name='755_v2.1'/>
+  <cpu type='tcg' name='MPC8543_v21'/>
+  <cpu type='tcg' name='MPC8547E_v20'/>
+  <cpu type='tcg' name='745_v2.8'/>
+  <cpu type='tcg' name='7455_v3.4'/>
+  <cpu type='tcg' name='7448_v1.1'/>
+  <cpu type='tcg' name='740_v2.2'/>
+  <cpu type='tcg' name='7400_v1.1'/>
+  <cpu type='tcg' name='MPC8567E'/>
+  <cpu type='tcg' name='7441_v2.10'/>
+  <cpu type='tcg' name='603e_v1.4'/>
+  <cpu type='tcg' name='G2leGP1'/>
+  <cpu type='tcg' name='7451_v2.10'/>
+  <cpu type='tcg' name='MPC8343E'/>
+  <cpu type='tcg' name='750cx_v2.2'/>
+  <cpu type='tcg' name='Npe405L'/>
+  <cpu type='tcg' name='603e7'/>
+  <cpu type='tcg' name='401A1'/>
+  <cpu type='tcg' name='MPC8377'/>
+  <cpu type='tcg' name='7448_v2.1'/>
+  <cpu type='tcg' name='7441_v2.3'/>
+  <cpu type='tcg' name='7400_v2.1'/>
+  <cpu type='tcg' name='405CRb'/>
+  <cpu type='tcg' name='604'/>
+  <cpu type='tcg' name='MPC8540_v20'/>
+  <cpu type='tcg' name='MPC8543_v10'/>
+  <cpu type='tcg' name='7447A_v1.0'/>
+  <cpu type='tcg' name='7445_v2.1'/>
+  <cpu type='tcg' name='e500_v20'/>
+  <cpu type='tcg' name='750gx_v1.1'/>
+  <cpu type='tcg' name='MPC8543E_v11'/>
+  <cpu type='tcg' name='750cxe_v2.4'/>
+  <cpu type='tcg' name='MPC8548_v20'/>
+  <cpu type='tcg' name='MPC8347AT'/>
+  <cpu type='tcg' name='POWER8NVL_v1.0'/>
+  <cpu type='tcg' name='7457A_v1.0'/>
+  <cpu type='tcg' name='7457_v1.0'/>
+  <cpu type='tcg' name='7450_v1.2'/>
+  <cpu type='tcg' name='MPC8572'/>
+  <cpu type='tcg' name='755_v2.5'/>
+  <cpu type='tcg' name='7410_v1.3'/>
+  <cpu type='tcg' name='745_v2.3'/>
+  <cpu type='tcg' name='750l_v2.1'/>
+  <cpu type='tcg' name='405GPR'/>
+  <cpu type='tcg' name='755_v2.0'/>
+  <cpu type='tcg' name='MPC8541_v11'/>
+  <cpu type='tcg' name='401C2'/>
+  <cpu type='tcg' name='e500v2_v30'/>
+  <cpu type='tcg' name='7455_v3.3'/>
+  <cpu type='tcg' name='405EZ'/>
+  <cpu type='tcg' name='MPC8568E'/>
+  <cpu type='tcg' name='755_v1.0'/>
+  <cpu type='tcg' name='603e_v1.3'/>
+  <cpu type='tcg' name='MPC8560_v10'/>
+  <cpu type='tcg' name='MPC8560_v21'/>
+  <cpu type='tcg' name='G2H4'/>
+  <cpu type='tcg' name='MPC8533_v11'/>
+  <cpu type='tcg' name='740_v3.1'/>
+  <cpu type='tcg' name='e200z5'/>
+  <cpu type='tcg' name='MPC8349'/>
+  <cpu type='tcg' name='7400_v2.0'/>
+  <cpu type='tcg' name='405CRa'/>
+  <cpu type='tcg' name='MPC8543E_v10'/>
+  <cpu type='tcg' name='MPC8543E_v21'/>
+  <cpu type='tcg' name='750cxe_v2.3'/>
+  <cpu type='tcg' name='MPC8543_v20'/>
+  <cpu type='tcg' name='745_v2.7'/>
+  <cpu type='tcg' name='403GC'/>
+  <cpu type='tcg' name='e5500'/>
+  <cpu type='tcg' name='7448_v1.0'/>
+  <cpu type='tcg' name='MPC5200_v12'/>
+  <cpu type='tcg' name='740_v2.1'/>
+  <cpu type='tcg' name='745_v2.2'/>
+  <cpu type='tcg' name='7400_v1.0'/>
+  <cpu type='tcg' name='7410_v1.2'/>
+  <cpu type='tcg' name='x2vp4'/>
+  <cpu type='tcg' name='MPC8555_v11'/>
+  <cpu type='tcg' name='MPC8541_v10'/>
+  <cpu type='tcg' name='405LP'/>
+  <cpu type='tcg' name='750fx_v2.3'/>
+  <cpu type='tcg' name='405EP'/>
+  <cpu type='tcg' name='601_v2'/>
+  <cpu type='tcg' name='MPC8544_v11'/>
+  <cpu type='tcg' name='401D2'/>
+  <cpu type='tcg' name='MPC8572E'/>
+  <cpu type='tcg' name='604e_v1.0'/>
+  <cpu type='tcg' name='750cx_v2.1'/>
+  <cpu type='tcg' name='MPC5200B_v21'/>
+  <cpu type='tcg' name='750l_v3.0'/>
+  <cpu type='tcg' name='e300c4'/>
+  <cpu type='tcg' name='7448_v2.0'/>
+  <cpu type='tcg' name='7450_v2.1'/>
+  <cpu type='tcg' name='G2leGP'/>
+  <cpu type='tcg' name='750cxe_v3.1b'/>
+  <cpu type='tcg' name='7400_v2.9'/>
+  <cpu type='tcg' name='G2GP'/>
+  <cpu type='tcg' name='603'/>
+  <cpu type='tcg' name='405GPd'/>
+  <cpu type='tcg' name='MPC8548E_v11'/>
+  <cpu type='tcg' name='603e7t'/>
+  <cpu type='tcg' name='IOP480'/>
+  <cpu type='tcg' name='750gx_v1.0'/>
+  <cpu type='tcg' name='MPC8560_v20'/>
+  <cpu type='tcg' name='405D2'/>
+  <cpu type='tcg' name='750fl'/>
+  <cpu type='tcg' name='750l_v2.0'/>
+  <cpu type='tcg' name='x2vp20'/>
+  <cpu type='tcg' name='e600'/>
+  <cpu type='tcg' name='7450_v1.1'/>
+  <cpu type='tcg' name='755_v2.4'/>
+  <cpu type='tcg' name='7445_v1.0'/>
+  <cpu type='tcg' name='G2LS'/>
+  <cpu type='tcg' name='MPC8543E_v20'/>
+  <cpu type='tcg' name='7447_v1.1'/>
+  <cpu type='tcg' name='603e_v2.2'/>
+  <cpu type='tcg' name='603e_v4'/>
+  <cpu type='tcg' name='7455_v3.2'/>
+  <cpu type='tcg' name='740_v2.0'/>
+  <cpu type='tcg' name='MPC8347P'/>
+  <cpu type='tcg' name='440EPb'/>
+  <cpu type='tcg' name='MPC603'/>
+  <cpu type='tcg' name='603e_v1.2'/>
+  <cpu type='tcg' name='750fx_v2.2'/>
+  <cpu type='tcg' name='740_v1.0'/>
+  <cpu type='tcg' name='MPC8544_v10'/>
+  <cpu type='tcg' name='601_v1'/>
+  <cpu type='tcg' name='745_v1.1'/>
+  <cpu type='tcg' name='POWER7+_v2.1'/>
+  <cpu type='tcg' name='750cx_v2.0'/>
+  <cpu type='tcg' name='MPC8347EAP'/>
+  <cpu type='tcg' name='401E2'/>
+  <cpu type='tcg' name='MPC8641D'/>
+  <cpu type='tcg' name='e300c3'/>
+  <cpu type='tcg' name='MPC8533_v10'/>
+  <cpu type='tcg' name='7441_v2.1'/>
+  <cpu type='tcg' name='740_v3.0'/>
+  <cpu type='tcg' name='POWER5+_v2.1'/>
+  <cpu type='tcg' name='602'/>
+  <cpu type='tcg' name='MPC8548E_v10'/>
+  <cpu type='tcg' name='G2leLS'/>
+  <cpu type='tcg' name='MPC8343'/>
+  <cpu type='tcg' name='750cx_v1.0'/>
+  <cpu type='tcg' name='750cxe_v2.2'/>
+  <cpu type='tcg' name='604e_v2.4'/>
+  <cpu type='tcg' name='755_v2.8'/>
+  <cpu type='tcg' name='MPC8548E_v21'/>
+  <cpu type='tcg' name='745_v2.6'/>
+  <cpu type='tcg' name='G2le'/>
+  <cpu type='tcg' name='403GB'/>
+  <cpu type='tcg' name='MPC8545E_v21'/>
+  <cpu type='tcg' name='POWER7_v2.3'/>
+  <cpu type='tcg' name='750_v2.2'/>
+  <cpu type='tcg' name='7450_v1.0'/>
+  <cpu type='tcg' name='MPC5200_v11'/>
+  <cpu type='tcg' name='755_v2.3'/>
+  <cpu type='tcg' name='MPC8347EP'/>
+  <cpu type='tcg' name='7410_v1.1'/>
+  <cpu type='tcg' name='750gl'/>
+  <cpu type='tcg' name='403GCX'/>
+  <cpu type='tcg' name='750p'/>
+  <cpu type='tcg' name='745_v2.1'/>
+  <cpu type='tcg' name='7445_v3.4'/>
+  <cpu type='tcg' name='G2'/>
+  <cpu type='tcg' name='MPC8555_v10'/>
+  <cpu type='tcg' name='MPC8347T'/>
+  <cpu type='tcg' name='603e_v3'/>
+  <cpu type='tcg' name='970_v2.2'/>
+  <cpu type='tcg' name='440-Xilinx'/>
+  <cpu type='tcg' name='740p'/>
+  <cpu type='tcg' name='MPC5200B_v20'/>
+  <cpu type='tcg' name='440EPX'/>
+  <cpu type='tcg' name='603e_v1.1'/>
+  <cpu type='tcg' name='7451_v2.3'/>
+  <cpu type='tcg' name='7450_v2.0'/>
+  <cpu type='tcg' name='7400_v2.8'/>
+  <cpu type='tcg' name='7455_v2.1'/>
+  <cpu type='tcg' name='405GPc'/>
+  <cpu type='tcg' name='MPC8347EAT'/>
+  <cpu type='tcg' name='970mp_v1.1'/>
+  <cpu type='tcg' name='603e7v2'/>
+  <cpu type='tcg' name='604r'/>
+  <cpu type='tcg' name='7447A_v1.2'/>
+  <cpu type='tcg' name='MPC8533E_v11'/>
+  <cpu type='tcg' name='e500v2_v22'/>
+  <cpu type='tcg' name='401F2'/>
+  <cpu type='tcg' name='MPC8343EA'/>
+  <cpu type='tcg' name='7457_v1.2'/>
+  <cpu type='tcg' name='970fx_v3.1'/>
+  <cpu type='tcg' name='7447_v1.0'/>
+  <cpu type='tcg' name='745_v2.5'/>
+  <cpu type='tcg' name='MPC8548E_v20'/>
+  <cpu type='tcg' name='MPC8610'/>
+  <cpu type='tcg' name='403GA'/>
+  <cpu type='tcg' name='750cxe_v2.4b'/>
+  <cpu type='tcg' name='MPC5200_v10'/>
+  <cpu type='tcg' name='7410_v1.0'/>
+  <cpu type='tcg' name='G2leGP3'/>
+  <cpu type='tcg' name='603e_v4.1'/>
+  <cpu type='tcg' name='7445_v3.3'/>
+  <cpu type='tcg' name='440EPa'/>
+  <cpu type='tcg' name='970fx_v2.1'/>
+  <cpu type='tcg' name='MPC8377E'/>
+  <cpu type='tcg' name='750fx_v2.1'/>
+  <cpu type='tcg' name='601_v0'/>
+  <cpu type='tcg' name='STB04'/>
+  <cpu type='tcg' name='745_v1.0'/>
+  <cpu type='tcg' name='G2HiP4'/>
+  <cpu type='tcg' name='750cl_v2.0'/>
+  <cpu type='tcg' name='750cxr'/>
+  <cpu type='tcg' name='MPC8349EA'/>
+  <cpu type='tcg' name='750cxe_v3.1'/>
+  <cpu type='tcg' name='401'/>
+  <cpu type='tcg' name='MPC8379'/>
+  <cpu type='tcg' name='MPC8568'/>
+  <cpu type='tcg' name='e300c2'/>
+  <cpu type='tcg' name='750_v3.1'/>
+  <cpu type='tcg' name='MPC8544E_v11'/>
+  <cpu type='tcg' name='405GPb'/>
+  <cpu type='tcg' name='MPC8541E_v11'/>
   <machine name='pseries-2.6' alias='pseries' maxCpus='255'/>
   <machine name='ref405ep' maxCpus='1'/>
   <machine name='virtex-ml507' maxCpus='1'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml
index e9bd5bb..db11db1 100644
--- a/tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml
@@ -200,34 +200,34 @@
   <kvmVersion>0</kvmVersion>
   <package></package>
   <arch>x86_64</arch>
-  <cpu name='Opteron_G5'/>
-  <cpu name='Opteron_G4'/>
-  <cpu name='Opteron_G3'/>
-  <cpu name='Opteron_G2'/>
-  <cpu name='Opteron_G1'/>
-  <cpu name='Broadwell'/>
-  <cpu name='Broadwell-noTSX'/>
-  <cpu name='Haswell'/>
-  <cpu name='Haswell-noTSX'/>
-  <cpu name='IvyBridge'/>
-  <cpu name='SandyBridge'/>
-  <cpu name='Westmere'/>
-  <cpu name='Nehalem'/>
-  <cpu name='Penryn'/>
-  <cpu name='Conroe'/>
-  <cpu name='n270'/>
-  <cpu name='athlon'/>
-  <cpu name='pentium3'/>
-  <cpu name='pentium2'/>
-  <cpu name='pentium'/>
-  <cpu name='486'/>
-  <cpu name='coreduo'/>
-  <cpu name='kvm32'/>
-  <cpu name='qemu32'/>
-  <cpu name='kvm64'/>
-  <cpu name='core2duo'/>
-  <cpu name='phenom'/>
-  <cpu name='qemu64'/>
+  <cpu type='tcg' name='Opteron_G5'/>
+  <cpu type='tcg' name='Opteron_G4'/>
+  <cpu type='tcg' name='Opteron_G3'/>
+  <cpu type='tcg' name='Opteron_G2'/>
+  <cpu type='tcg' name='Opteron_G1'/>
+  <cpu type='tcg' name='Broadwell'/>
+  <cpu type='tcg' name='Broadwell-noTSX'/>
+  <cpu type='tcg' name='Haswell'/>
+  <cpu type='tcg' name='Haswell-noTSX'/>
+  <cpu type='tcg' name='IvyBridge'/>
+  <cpu type='tcg' name='SandyBridge'/>
+  <cpu type='tcg' name='Westmere'/>
+  <cpu type='tcg' name='Nehalem'/>
+  <cpu type='tcg' name='Penryn'/>
+  <cpu type='tcg' name='Conroe'/>
+  <cpu type='tcg' name='n270'/>
+  <cpu type='tcg' name='athlon'/>
+  <cpu type='tcg' name='pentium3'/>
+  <cpu type='tcg' name='pentium2'/>
+  <cpu type='tcg' name='pentium'/>
+  <cpu type='tcg' name='486'/>
+  <cpu type='tcg' name='coreduo'/>
+  <cpu type='tcg' name='kvm32'/>
+  <cpu type='tcg' name='qemu32'/>
+  <cpu type='tcg' name='kvm64'/>
+  <cpu type='tcg' name='core2duo'/>
+  <cpu type='tcg' name='phenom'/>
+  <cpu type='tcg' name='qemu64'/>
   <machine name='pc-i440fx-2.6' alias='pc' maxCpus='255'/>
   <machine name='pc-0.12' maxCpus='255'/>
   <machine name='pc-i440fx-2.4' maxCpus='255'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml
index b6e34b0..e9ec323 100644
--- a/tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml
@@ -202,35 +202,35 @@
   <kvmVersion>0</kvmVersion>
   <package> (v2.7.0)</package>
   <arch>x86_64</arch>
-  <cpu name='Opteron_G5'/>
-  <cpu name='Opteron_G4'/>
-  <cpu name='Opteron_G3'/>
-  <cpu name='Opteron_G2'/>
-  <cpu name='Opteron_G1'/>
-  <cpu name='Skylake-Client'/>
-  <cpu name='Broadwell'/>
-  <cpu name='Broadwell-noTSX'/>
-  <cpu name='Haswell'/>
-  <cpu name='Haswell-noTSX'/>
-  <cpu name='IvyBridge'/>
-  <cpu name='SandyBridge'/>
-  <cpu name='Westmere'/>
-  <cpu name='Nehalem'/>
-  <cpu name='Penryn'/>
-  <cpu name='Conroe'/>
-  <cpu name='n270'/>
-  <cpu name='athlon'/>
-  <cpu name='pentium3'/>
-  <cpu name='pentium2'/>
-  <cpu name='pentium'/>
-  <cpu name='486'/>
-  <cpu name='coreduo'/>
-  <cpu name='kvm32'/>
-  <cpu name='qemu32'/>
-  <cpu name='kvm64'/>
-  <cpu name='core2duo'/>
-  <cpu name='phenom'/>
-  <cpu name='qemu64'/>
+  <cpu type='tcg' name='Opteron_G5'/>
+  <cpu type='tcg' name='Opteron_G4'/>
+  <cpu type='tcg' name='Opteron_G3'/>
+  <cpu type='tcg' name='Opteron_G2'/>
+  <cpu type='tcg' name='Opteron_G1'/>
+  <cpu type='tcg' name='Skylake-Client'/>
+  <cpu type='tcg' name='Broadwell'/>
+  <cpu type='tcg' name='Broadwell-noTSX'/>
+  <cpu type='tcg' name='Haswell'/>
+  <cpu type='tcg' name='Haswell-noTSX'/>
+  <cpu type='tcg' name='IvyBridge'/>
+  <cpu type='tcg' name='SandyBridge'/>
+  <cpu type='tcg' name='Westmere'/>
+  <cpu type='tcg' name='Nehalem'/>
+  <cpu type='tcg' name='Penryn'/>
+  <cpu type='tcg' name='Conroe'/>
+  <cpu type='tcg' name='n270'/>
+  <cpu type='tcg' name='athlon'/>
+  <cpu type='tcg' name='pentium3'/>
+  <cpu type='tcg' name='pentium2'/>
+  <cpu type='tcg' name='pentium'/>
+  <cpu type='tcg' name='486'/>
+  <cpu type='tcg' name='coreduo'/>
+  <cpu type='tcg' name='kvm32'/>
+  <cpu type='tcg' name='qemu32'/>
+  <cpu type='tcg' name='kvm64'/>
+  <cpu type='tcg' name='core2duo'/>
+  <cpu type='tcg' name='phenom'/>
+  <cpu type='tcg' name='qemu64'/>
   <machine name='pc-i440fx-2.7' alias='pc' hotplugCpus='yes' maxCpus='255'/>
   <machine name='pc-0.12' hotplugCpus='yes' maxCpus='255'/>
   <machine name='pc-i440fx-2.4' hotplugCpus='yes' maxCpus='255'/>
diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c
index 985f45d..e44912d 100644
--- a/tests/qemuxml2argvtest.c
+++ b/tests/qemuxml2argvtest.c
@@ -302,20 +302,31 @@ testAddCPUModels(virQEMUCapsPtr caps, bool skipLegacy)
     };
 
     if (ARCH_IS_X86(arch)) {
-        if (virQEMUCapsAddCPUDefinitions(caps, x86Models,
+        if (virQEMUCapsAddCPUDefinitions(caps, VIR_DOMAIN_VIRT_KVM, x86Models,
+                                         ARRAY_CARDINALITY(x86Models)) < 0 ||
+            virQEMUCapsAddCPUDefinitions(caps, VIR_DOMAIN_VIRT_QEMU, x86Models,
                                          ARRAY_CARDINALITY(x86Models)) < 0)
             return -1;
 
-        if (!skipLegacy &&
-            virQEMUCapsAddCPUDefinitions(caps, x86LegacyModels,
-                                         ARRAY_CARDINALITY(x86LegacyModels)) < 0)
-            return -1;
+        if (!skipLegacy) {
+            if (virQEMUCapsAddCPUDefinitions(caps, VIR_DOMAIN_VIRT_KVM,
+                                             x86LegacyModels,
+                                             ARRAY_CARDINALITY(x86LegacyModels)) < 0 ||
+                virQEMUCapsAddCPUDefinitions(caps, VIR_DOMAIN_VIRT_QEMU,
+                                             x86LegacyModels,
+                                             ARRAY_CARDINALITY(x86LegacyModels)) < 0)
+                return -1;
+        }
     } else if (ARCH_IS_ARM(arch)) {
-        if (virQEMUCapsAddCPUDefinitions(caps, armModels,
+        if (virQEMUCapsAddCPUDefinitions(caps, VIR_DOMAIN_VIRT_KVM, armModels,
+                                         ARRAY_CARDINALITY(armModels)) < 0 ||
+            virQEMUCapsAddCPUDefinitions(caps, VIR_DOMAIN_VIRT_QEMU, armModels,
                                          ARRAY_CARDINALITY(armModels)) < 0)
             return -1;
     } else if (ARCH_IS_PPC64(arch)) {
-        if (virQEMUCapsAddCPUDefinitions(caps, ppc64Models,
+        if (virQEMUCapsAddCPUDefinitions(caps, VIR_DOMAIN_VIRT_KVM, ppc64Models,
+                                         ARRAY_CARDINALITY(ppc64Models)) < 0 ||
+            virQEMUCapsAddCPUDefinitions(caps, VIR_DOMAIN_VIRT_QEMU, ppc64Models,
                                          ARRAY_CARDINALITY(ppc64Models)) < 0)
             return -1;
     }
-- 
2.10.2




More information about the libvir-list mailing list