c313de
From 53744fa2afeb19f0ce31cb109e0b3c1f1c8b815b Mon Sep 17 00:00:00 2001
c313de
Message-Id: <53744fa2afeb19f0ce31cb109e0b3c1f1c8b815b@dist-git>
c313de
From: Jiri Denemark <jdenemar@redhat.com>
c313de
Date: Fri, 21 Jun 2019 09:25:58 +0200
c313de
Subject: [PATCH] qemu: Make qemuMonitorGetGuestCPU usable on x86 only
c313de
MIME-Version: 1.0
c313de
Content-Type: text/plain; charset=UTF-8
c313de
Content-Transfer-Encoding: 8bit
c313de
c313de
It was never implemented or used for anything else anyway. Mainly
c313de
because it uses CPUID features bits. The function is renamed as
c313de
qemuMonitorGetGuestCPUx86 to make this explicit.
c313de
c313de
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
c313de
Reviewed-by: Ján Tomko <jtomko@redhat.com>
c313de
(cherry picked from commit 055f8f6bb953a8a489729d6cd62e55dee058b7e6)
c313de
c313de
https://bugzilla.redhat.com/show_bug.cgi?id=1697627
c313de
c313de
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
c313de
Message-Id: <8e07e0a4f5f751bacf5e23fcdc6b93265b819359.1561068591.git.jdenemar@redhat.com>
c313de
Reviewed-by: Ján Tomko <jtomko@redhat.com>
c313de
---
c313de
 src/qemu/qemu_monitor.c      | 15 +++++-------
c313de
 src/qemu/qemu_monitor.h      |  7 +++---
c313de
 src/qemu/qemu_monitor_json.c | 47 +++++++++++++++---------------------
c313de
 src/qemu/qemu_monitor_json.h |  7 +++---
c313de
 src/qemu/qemu_process.c      |  3 +--
c313de
 tests/qemumonitorjsontest.c  | 10 +++-----
c313de
 6 files changed, 36 insertions(+), 53 deletions(-)
c313de
c313de
diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c
c313de
index bc116e4e2d..b35187b66d 100644
c313de
--- a/src/qemu/qemu_monitor.c
c313de
+++ b/src/qemu/qemu_monitor.c
c313de
@@ -4047,9 +4047,8 @@ qemuMonitorSetDomainLog(qemuMonitorPtr mon,
c313de
 
c313de
 
c313de
 /**
c313de
- * qemuMonitorJSONGetGuestCPU:
c313de
+ * qemuMonitorJSONGetGuestCPUx86:
c313de
  * @mon: Pointer to the monitor
c313de
- * @arch: arch of the guest
c313de
  * @data: returns the cpu data
c313de
  * @disabled: returns the CPU data for features which were disabled by QEMU
c313de
  *
c313de
@@ -4059,13 +4058,11 @@ qemuMonitorSetDomainLog(qemuMonitorPtr mon,
c313de
  * -1 on other errors.
c313de
  */
c313de
 int
c313de
-qemuMonitorGetGuestCPU(qemuMonitorPtr mon,
c313de
-                       virArch arch,
c313de
-                       virCPUDataPtr *data,
c313de
-                       virCPUDataPtr *disabled)
c313de
+qemuMonitorGetGuestCPUx86(qemuMonitorPtr mon,
c313de
+                          virCPUDataPtr *data,
c313de
+                          virCPUDataPtr *disabled)
c313de
 {
c313de
-    VIR_DEBUG("arch=%s data=%p disabled=%p",
c313de
-              virArchToString(arch), data, disabled);
c313de
+    VIR_DEBUG("data=%p disabled=%p", data, disabled);
c313de
 
c313de
     QEMU_CHECK_MONITOR(mon);
c313de
 
c313de
@@ -4073,7 +4070,7 @@ qemuMonitorGetGuestCPU(qemuMonitorPtr mon,
c313de
     if (disabled)
c313de
         *disabled = NULL;
c313de
 
c313de
-    return qemuMonitorJSONGetGuestCPU(mon, arch, data, disabled);
c313de
+    return qemuMonitorJSONGetGuestCPUx86(mon, data, disabled);
c313de
 }
c313de
 
c313de
 
c313de
diff --git a/src/qemu/qemu_monitor.h b/src/qemu/qemu_monitor.h
c313de
index 81474a04f6..b4d484c703 100644
c313de
--- a/src/qemu/qemu_monitor.h
c313de
+++ b/src/qemu/qemu_monitor.h
c313de
@@ -1095,10 +1095,9 @@ void qemuMonitorSetDomainLog(qemuMonitorPtr mon,
c313de
                              void *opaque,
c313de
                              virFreeCallback destroy);
c313de
 
c313de
-int qemuMonitorGetGuestCPU(qemuMonitorPtr mon,
c313de
-                           virArch arch,
c313de
-                           virCPUDataPtr *data,
c313de
-                           virCPUDataPtr *disabled);
c313de
+int qemuMonitorGetGuestCPUx86(qemuMonitorPtr mon,
c313de
+                              virCPUDataPtr *data,
c313de
+                              virCPUDataPtr *disabled);
c313de
 
c313de
 int qemuMonitorRTCResetReinjection(qemuMonitorPtr mon);
c313de
 
c313de
diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c
c313de
index e6ac82e96b..8fead72ecf 100644
c313de
--- a/src/qemu/qemu_monitor_json.c
c313de
+++ b/src/qemu/qemu_monitor_json.c
c313de
@@ -7157,9 +7157,8 @@ qemuMonitorJSONCheckCPUx86(qemuMonitorPtr mon)
c313de
 
c313de
 
c313de
 /**
c313de
- * qemuMonitorJSONGetGuestCPU:
c313de
+ * qemuMonitorJSONGetGuestCPUx86:
c313de
  * @mon: Pointer to the monitor
c313de
- * @arch: arch of the guest
c313de
  * @data: returns the cpu data of the guest
c313de
  * @disabled: returns the CPU data for features which were disabled by QEMU
c313de
  *
c313de
@@ -7169,40 +7168,32 @@ qemuMonitorJSONCheckCPUx86(qemuMonitorPtr mon)
c313de
  * -1 on other errors.
c313de
  */
c313de
 int
c313de
-qemuMonitorJSONGetGuestCPU(qemuMonitorPtr mon,
c313de
-                           virArch arch,
c313de
-                           virCPUDataPtr *data,
c313de
-                           virCPUDataPtr *disabled)
c313de
+qemuMonitorJSONGetGuestCPUx86(qemuMonitorPtr mon,
c313de
+                              virCPUDataPtr *data,
c313de
+                              virCPUDataPtr *disabled)
c313de
 {
c313de
     virCPUDataPtr cpuEnabled = NULL;
c313de
     virCPUDataPtr cpuDisabled = NULL;
c313de
     int rc;
c313de
 
c313de
-    if (ARCH_IS_X86(arch)) {
c313de
-        if ((rc = qemuMonitorJSONCheckCPUx86(mon)) < 0)
c313de
-            return -1;
c313de
-        else if (!rc)
c313de
-            return -2;
c313de
+    if ((rc = qemuMonitorJSONCheckCPUx86(mon)) < 0)
c313de
+        return -1;
c313de
+    else if (!rc)
c313de
+        return -2;
c313de
 
c313de
-        if (qemuMonitorJSONGetCPUx86Data(mon, "feature-words",
c313de
-                                         &cpuEnabled) < 0)
c313de
-            goto error;
c313de
+    if (qemuMonitorJSONGetCPUx86Data(mon, "feature-words",
c313de
+                                     &cpuEnabled) < 0)
c313de
+        goto error;
c313de
 
c313de
-        if (disabled &&
c313de
-            qemuMonitorJSONGetCPUx86Data(mon, "filtered-features",
c313de
-                                         &cpuDisabled) < 0)
c313de
-            goto error;
c313de
+    if (disabled &&
c313de
+        qemuMonitorJSONGetCPUx86Data(mon, "filtered-features",
c313de
+                                     &cpuDisabled) < 0)
c313de
+        goto error;
c313de
 
c313de
-        *data = cpuEnabled;
c313de
-        if (disabled)
c313de
-            *disabled = cpuDisabled;
c313de
-        return 0;
c313de
-    }
c313de
-
c313de
-    virReportError(VIR_ERR_INTERNAL_ERROR,
c313de
-                   _("CPU definition retrieval isn't supported for '%s'"),
c313de
-                   virArchToString(arch));
c313de
-    return -1;
c313de
+    *data = cpuEnabled;
c313de
+    if (disabled)
c313de
+        *disabled = cpuDisabled;
c313de
+    return 0;
c313de
 
c313de
  error:
c313de
     virCPUDataFree(cpuEnabled);
c313de
diff --git a/src/qemu/qemu_monitor_json.h b/src/qemu/qemu_monitor_json.h
c313de
index 66536ceb97..57bed027e2 100644
c313de
--- a/src/qemu/qemu_monitor_json.h
c313de
+++ b/src/qemu/qemu_monitor_json.h
c313de
@@ -486,10 +486,9 @@ int qemuMonitorJSONGetCPUx86Data(qemuMonitorPtr mon,
c313de
                                  const char *property,
c313de
                                  virCPUDataPtr *cpudata);
c313de
 
c313de
-int qemuMonitorJSONGetGuestCPU(qemuMonitorPtr mon,
c313de
-                               virArch arch,
c313de
-                               virCPUDataPtr *data,
c313de
-                               virCPUDataPtr *disabled);
c313de
+int qemuMonitorJSONGetGuestCPUx86(qemuMonitorPtr mon,
c313de
+                                  virCPUDataPtr *data,
c313de
+                                  virCPUDataPtr *disabled);
c313de
 
c313de
 int qemuMonitorJSONRTCResetReinjection(qemuMonitorPtr mon);
c313de
 
c313de
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
c313de
index bc573f96a4..59a739f262 100644
c313de
--- a/src/qemu/qemu_process.c
c313de
+++ b/src/qemu/qemu_process.c
c313de
@@ -4034,8 +4034,7 @@ qemuProcessFetchGuestCPU(virQEMUDriverPtr driver,
c313de
     if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0)
c313de
         goto error;
c313de
 
c313de
-    rc = qemuMonitorGetGuestCPU(priv->mon, vm->def->os.arch,
c313de
-                                &dataEnabled, &dataDisabled);
c313de
+    rc = qemuMonitorGetGuestCPUx86(priv->mon, &dataEnabled, &dataDisabled);
c313de
 
c313de
     if (qemuDomainObjExitMonitor(driver, vm) < 0)
c313de
         goto error;
c313de
diff --git a/tests/qemumonitorjsontest.c b/tests/qemumonitorjsontest.c
c313de
index 2eefd06b6e..ef9a549c04 100644
c313de
--- a/tests/qemumonitorjsontest.c
c313de
+++ b/tests/qemumonitorjsontest.c
c313de
@@ -2437,9 +2437,8 @@ testQemuMonitorJSONGetCPUData(const void *opaque)
c313de
     if (qemuMonitorTestAddItem(test, "qom-get", jsonStr) < 0)
c313de
         goto cleanup;
c313de
 
c313de
-    if (qemuMonitorJSONGetGuestCPU(qemuMonitorTestGetMonitor(test),
c313de
-                                   VIR_ARCH_X86_64,
c313de
-                                   &cpuData, NULL) < 0)
c313de
+    if (qemuMonitorJSONGetGuestCPUx86(qemuMonitorTestGetMonitor(test),
c313de
+                                      &cpuData, NULL) < 0)
c313de
         goto cleanup;
c313de
 
c313de
     if (!(actual = virCPUDataFormat(cpuData)))
c313de
@@ -2480,9 +2479,8 @@ testQemuMonitorJSONGetNonExistingCPUData(const void *opaque)
c313de
                                "}") < 0)
c313de
         goto cleanup;
c313de
 
c313de
-    rv = qemuMonitorJSONGetGuestCPU(qemuMonitorTestGetMonitor(test),
c313de
-                                   VIR_ARCH_X86_64,
c313de
-                                   &cpuData, NULL);
c313de
+    rv = qemuMonitorJSONGetGuestCPUx86(qemuMonitorTestGetMonitor(test),
c313de
+                                       &cpuData, NULL);
c313de
     if (rv != -2) {
c313de
         virReportError(VIR_ERR_INTERNAL_ERROR,
c313de
                        "Unexpected return value %d, expecting -2", rv);
c313de
-- 
c313de
2.22.0
c313de