[libvirt] [PATCH 3/4] Revert "qemu: Store migratable host CPU model in qemuCaps"

Jiri Denemark jdenemar at redhat.com
Fri Apr 7 11:23:57 UTC 2017


This reverts commit dfc711dc8cf08e942b01e6ead3de117e6522e5cd which was
pushed accidentally.

Signed-off-by: Jiri Denemark <jdenemar at redhat.com>
---
 src/qemu/qemu_capabilities.c | 91 ++++++++++----------------------------------
 1 file changed, 20 insertions(+), 71 deletions(-)

diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index 964299b01..74fe2c258 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -373,14 +373,6 @@ struct virQEMUCapsMachineType {
     unsigned int maxCpus;
     bool hotplugCpus;
 };
-
-typedef struct _virQEMUCapsCPUModel virQEMUCapsCPUModel;
-typedef virQEMUCapsCPUModel *virQEMUCapsCPUModelPtr;
-struct _virQEMUCapsCPUModel {
-    virCPUDefPtr full;
-    virCPUDefPtr migratable;
-};
-
 /*
  * Update the XML parser/formatter when adding more
  * information to this struct so that it gets cached
@@ -423,8 +415,8 @@ struct _virQEMUCaps {
      * time we probe QEMU or load the results from the cache.
      */
     struct {
-        virQEMUCapsCPUModel kvm;
-        virQEMUCapsCPUModel tcg;
+        virCPUDefPtr kvm;
+        virCPUDefPtr tcg;
     } hostCPU;
 };
 
@@ -2109,20 +2101,12 @@ virQEMUCapsCopyHostCPUData(virQEMUCapsPtr dst,
         !(dst->tcgCPUModelInfo = qemuMonitorCPUModelInfoCopy(src->tcgCPUModelInfo)))
         return -1;
 
-    if (src->hostCPU.kvm.full &&
-        !(dst->hostCPU.kvm.full = virCPUDefCopy(src->hostCPU.kvm.full)))
+    if (src->hostCPU.kvm &&
+        !(dst->hostCPU.kvm = virCPUDefCopy(src->hostCPU.kvm)))
         return -1;
 
-    if (src->hostCPU.kvm.migratable &&
-        !(dst->hostCPU.kvm.migratable = virCPUDefCopy(src->hostCPU.kvm.migratable)))
-        return -1;
-
-    if (src->hostCPU.tcg.full &&
-        !(dst->hostCPU.tcg.full = virCPUDefCopy(src->hostCPU.tcg.full)))
-        return -1;
-
-    if (src->hostCPU.tcg.migratable &&
-        !(dst->hostCPU.tcg.migratable = virCPUDefCopy(src->hostCPU.tcg.migratable)))
+    if (src->hostCPU.tcg &&
+        !(dst->hostCPU.tcg = virCPUDefCopy(src->hostCPU.tcg)))
         return -1;
 
     return 0;
@@ -2217,10 +2201,8 @@ void virQEMUCapsDispose(void *obj)
 
     qemuMonitorCPUModelInfoFree(qemuCaps->kvmCPUModelInfo);
     qemuMonitorCPUModelInfoFree(qemuCaps->tcgCPUModelInfo);
-    virCPUDefFree(qemuCaps->hostCPU.kvm.full);
-    virCPUDefFree(qemuCaps->hostCPU.kvm.migratable);
-    virCPUDefFree(qemuCaps->hostCPU.tcg.full);
-    virCPUDefFree(qemuCaps->hostCPU.tcg.migratable);
+    virCPUDefFree(qemuCaps->hostCPU.kvm);
+    virCPUDefFree(qemuCaps->hostCPU.tcg);
 }
 
 void
@@ -2449,9 +2431,9 @@ virQEMUCapsGetHostModel(virQEMUCapsPtr qemuCaps,
                         virDomainVirtType type)
 {
     if (type == VIR_DOMAIN_VIRT_KVM)
-        return qemuCaps->hostCPU.kvm.full;
+        return qemuCaps->hostCPU.kvm;
     else
-        return qemuCaps->hostCPU.tcg.full;
+        return qemuCaps->hostCPU.tcg;
 }
 
 
@@ -3298,40 +3280,26 @@ virQEMUCapsInitCPUModel(virQEMUCapsPtr qemuCaps,
 }
 
 
-static virCPUDefPtr
-virQEMUCapsNewHostCPUModel(void)
-{
-    virCPUDefPtr cpu;
-
-    if (VIR_ALLOC(cpu) < 0)
-        return NULL;
-
-    cpu->type = VIR_CPU_TYPE_GUEST;
-    cpu->mode = VIR_CPU_MODE_CUSTOM;
-    cpu->match = VIR_CPU_MATCH_EXACT;
-    cpu->fallback = VIR_CPU_FALLBACK_ALLOW;
-
-    return cpu;
-}
-
-
 void
 virQEMUCapsInitHostCPUModel(virQEMUCapsPtr qemuCaps,
                             virCapsPtr caps,
                             virDomainVirtType type)
 {
     virCPUDefPtr cpu = NULL;
-    virCPUDefPtr migCPU = NULL;
     virCPUDefPtr hostCPU = NULL;
-    virQEMUCapsCPUModelPtr model;
     int rc;
 
     if (!caps || !virQEMUCapsGuestIsNative(caps->host.arch, qemuCaps->arch))
         return;
 
-    if (!(cpu = virQEMUCapsNewHostCPUModel()))
+    if (VIR_ALLOC(cpu) < 0)
         goto error;
 
+    cpu->type = VIR_CPU_TYPE_GUEST;
+    cpu->mode = VIR_CPU_MODE_CUSTOM;
+    cpu->match = VIR_CPU_MATCH_EXACT;
+    cpu->fallback = VIR_CPU_FALLBACK_ALLOW;
+
     if ((rc = virQEMUCapsInitCPUModel(qemuCaps, type, cpu, false)) < 0) {
         goto error;
     } else if (rc == 1) {
@@ -3345,26 +3313,10 @@ virQEMUCapsInitHostCPUModel(virQEMUCapsPtr qemuCaps,
             goto error;
     }
 
-    if (!(migCPU = virQEMUCapsNewHostCPUModel()))
-        goto error;
-
-    if ((rc = virQEMUCapsInitCPUModel(qemuCaps, type, migCPU, true)) < 0) {
-        goto error;
-    } else if (rc == 1) {
-        VIR_DEBUG("CPU migratibility not provided by QEMU");
-
-        virCPUDefFree(migCPU);
-        if (!(migCPU = virCPUCopyMigratable(qemuCaps->arch, cpu)))
-            goto error;
-    }
-
     if (type == VIR_DOMAIN_VIRT_KVM)
-        model = &qemuCaps->hostCPU.kvm;
+        qemuCaps->hostCPU.kvm = cpu;
     else
-        model = &qemuCaps->hostCPU.tcg;
-
-    model->full = cpu;
-    model->migratable = migCPU;
+        qemuCaps->hostCPU.tcg = cpu;
 
  cleanup:
     virCPUDefFree(hostCPU);
@@ -3372,7 +3324,6 @@ virQEMUCapsInitHostCPUModel(virQEMUCapsPtr qemuCaps,
 
  error:
     virCPUDefFree(cpu);
-    virCPUDefFree(migCPU);
     virResetLastError();
     goto cleanup;
 }
@@ -4120,10 +4071,8 @@ virQEMUCapsReset(virQEMUCapsPtr qemuCaps)
     qemuCaps->kvmCPUModelInfo = NULL;
     qemuCaps->tcgCPUModelInfo = NULL;
 
-    virCPUDefFree(qemuCaps->hostCPU.kvm.full);
-    virCPUDefFree(qemuCaps->hostCPU.kvm.migratable);
-    virCPUDefFree(qemuCaps->hostCPU.tcg.full);
-    virCPUDefFree(qemuCaps->hostCPU.tcg.migratable);
+    virCPUDefFree(qemuCaps->hostCPU.kvm);
+    virCPUDefFree(qemuCaps->hostCPU.tcg);
     memset(&qemuCaps->hostCPU, 0, sizeof(qemuCaps->hostCPU));
 }
 
-- 
2.12.2




More information about the libvir-list mailing list