[PATCH 01/14] qemu: Drop legacy probing of CPU features

Jiri Denemark via Devel posted 14 patches 3 days, 9 hours ago
[PATCH 01/14] qemu: Drop legacy probing of CPU features
Posted by Jiri Denemark via Devel 3 days, 9 hours ago
From: Jiri Denemark <jdenemar@redhat.com>

The legacy probing which reads CPUID registers from QEMU and interprets
the individual bits is not used with any QEMU version currently
supported by libvirt.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
---
 src/qemu/qemu_monitor.c                       |  30 ---
 src/qemu/qemu_monitor.h                       |   5 -
 src/qemu/qemu_monitor_json.c                  | 191 ------------------
 src/qemu/qemu_process.c                       |  19 +-
 .../qemumonitorjson-getcpu-ecx.data           |   7 -
 .../qemumonitorjson-getcpu-ecx.json           |  57 ------
 .../qemumonitorjson-getcpu-full.data          |   5 -
 .../qemumonitorjson-getcpu-full.json          |  46 -----
 .../qemumonitorjson-getcpu-host.data          |   6 -
 .../qemumonitorjson-getcpu-host.json          |  45 -----
 tests/qemumonitorjsontest.c                   | 116 -----------
 11 files changed, 6 insertions(+), 521 deletions(-)
 delete mode 100644 tests/qemumonitorjsondata/qemumonitorjson-getcpu-ecx.data
 delete mode 100644 tests/qemumonitorjsondata/qemumonitorjson-getcpu-ecx.json
 delete mode 100644 tests/qemumonitorjsondata/qemumonitorjson-getcpu-full.data
 delete mode 100644 tests/qemumonitorjsondata/qemumonitorjson-getcpu-full.json
 delete mode 100644 tests/qemumonitorjsondata/qemumonitorjson-getcpu-host.data
 delete mode 100644 tests/qemumonitorjsondata/qemumonitorjson-getcpu-host.json

diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c
index 1f5b4ec215..0213bd5af8 100644
--- a/src/qemu/qemu_monitor.c
+++ b/src/qemu/qemu_monitor.c
@@ -3669,36 +3669,6 @@ qemuMonitorSetDomainLog(qemuMonitor *mon,
 }
 
 
-/**
- * qemuMonitorJSONGetGuestCPUx86:
- * @mon: Pointer to the monitor
- * @cpuQOMPath: QOM path of a CPU to probe
- * @data: returns the cpu data
- * @disabled: returns the CPU data for features which were disabled by QEMU
- *
- * Retrieve the definition of the guest CPU from a running qemu instance.
- *
- * Returns 0 on success, -2 if the operation is not supported by the guest,
- * -1 on other errors.
- */
-int
-qemuMonitorGetGuestCPUx86(qemuMonitor *mon,
-                          const char *cpuQOMPath,
-                          virCPUData **data,
-                          virCPUData **disabled)
-{
-    VIR_DEBUG("cpuQOMPath=%s data=%p disabled=%p", cpuQOMPath, data, disabled);
-
-    QEMU_CHECK_MONITOR(mon);
-
-    *data = NULL;
-    if (disabled)
-        *disabled = NULL;
-
-    return qemuMonitorJSONGetGuestCPUx86(mon, cpuQOMPath, data, disabled);
-}
-
-
 /**
  * qemuMonitorGetGuestCPU:
  * @mon: Pointer to the monitor
diff --git a/src/qemu/qemu_monitor.h b/src/qemu/qemu_monitor.h
index a2ba5882f6..689a587ec6 100644
--- a/src/qemu/qemu_monitor.h
+++ b/src/qemu/qemu_monitor.h
@@ -1263,11 +1263,6 @@ void qemuMonitorSetDomainLog(qemuMonitor *mon,
                              void *opaque,
                              virFreeCallback destroy);
 
-int qemuMonitorGetGuestCPUx86(qemuMonitor *mon,
-                              const char *cpuQOMPath,
-                              virCPUData **data,
-                              virCPUData **disabled);
-
 typedef const char *(*qemuMonitorCPUFeatureTranslationCallback)(virArch arch,
                                                                 const char *name);
 
diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c
index 0e5a9d3b4f..6402d18d37 100644
--- a/src/qemu/qemu_monitor_json.c
+++ b/src/qemu/qemu_monitor_json.c
@@ -6578,197 +6578,6 @@ qemuMonitorJSONGetDeviceAliases(qemuMonitor *mon,
 }
 
 
-static int
-qemuMonitorJSONParseCPUx86FeatureWord(virJSONValue *data,
-                                      virCPUx86CPUID *cpuid)
-{
-    const char *reg;
-    unsigned long long eax_in;
-    unsigned long long ecx_in = 0;
-    unsigned long long features;
-
-    memset(cpuid, 0, sizeof(*cpuid));
-
-    if (!(reg = virJSONValueObjectGetString(data, "cpuid-register"))) {
-        virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
-                       _("missing cpuid-register in CPU data"));
-        return -1;
-    }
-    if (virJSONValueObjectGetNumberUlong(data, "cpuid-input-eax", &eax_in) < 0) {
-        virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
-                       _("missing or invalid cpuid-input-eax in CPU data"));
-        return -1;
-    }
-    ignore_value(virJSONValueObjectGetNumberUlong(data, "cpuid-input-ecx",
-                                                  &ecx_in));
-    if (virJSONValueObjectGetNumberUlong(data, "features", &features) < 0) {
-        virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
-                       _("missing or invalid features in CPU data"));
-        return -1;
-    }
-
-    cpuid->eax_in = eax_in;
-    cpuid->ecx_in = ecx_in;
-    if (STREQ(reg, "EAX")) {
-        cpuid->eax = features;
-    } else if (STREQ(reg, "EBX")) {
-        cpuid->ebx = features;
-    } else if (STREQ(reg, "ECX")) {
-        cpuid->ecx = features;
-    } else if (STREQ(reg, "EDX")) {
-        cpuid->edx = features;
-    } else {
-        virReportError(VIR_ERR_INTERNAL_ERROR,
-                       _("unknown CPU register '%1$s'"), reg);
-        return -1;
-    }
-
-    return 0;
-}
-
-
-static virCPUData *
-qemuMonitorJSONParseCPUx86Features(virJSONValue *data)
-{
-    g_autoptr(virCPUData) cpudata = NULL;
-    virCPUx86DataItem item = { 0 };
-    size_t i;
-
-    if (!(cpudata = virCPUDataNew(VIR_ARCH_X86_64)))
-        return NULL;
-
-    item.type = VIR_CPU_X86_DATA_CPUID;
-    for (i = 0; i < virJSONValueArraySize(data); i++) {
-        if (qemuMonitorJSONParseCPUx86FeatureWord(virJSONValueArrayGet(data, i),
-                                                  &item.data.cpuid) < 0) {
-            return NULL;
-        }
-
-        virCPUx86DataAdd(cpudata, &item);
-    }
-
-    return g_steal_pointer(&cpudata);
-}
-
-
-static int
-qemuMonitorJSONGetCPUx86Data(qemuMonitor *mon,
-                             const char *cpuQOMPath,
-                             const char *property,
-                             virCPUData **cpudata)
-{
-    g_autoptr(virJSONValue) cmd = NULL;
-    g_autoptr(virJSONValue) reply = NULL;
-    virJSONValue *data;
-
-    if (!(cmd = qemuMonitorJSONMakeCommand("qom-get",
-                                           "s:path", cpuQOMPath,
-                                           "s:property", property,
-                                           NULL)))
-        return -1;
-
-    if (qemuMonitorJSONCommand(mon, cmd, &reply) < 0)
-        return -1;
-
-    if (!(data = qemuMonitorJSONGetReply(cmd, reply, VIR_JSON_TYPE_ARRAY)))
-        return -1;
-
-    if (!(*cpudata = qemuMonitorJSONParseCPUx86Features(data)))
-        return -1;
-
-    return 0;
-}
-
-
-/*
- * Returns -1 on error, 0 if QEMU does not support reporting CPUID features
- * of a guest CPU, and 1 if the feature is supported.
- */
-static int
-qemuMonitorJSONCheckCPUx86(qemuMonitor *mon,
-                           const char *cpuQOMPath)
-{
-    g_autoptr(virJSONValue) cmd = NULL;
-    g_autoptr(virJSONValue) reply = NULL;
-    virJSONValue *data;
-    size_t i;
-    size_t n;
-
-    if (!(cmd = qemuMonitorJSONMakeCommand("qom-list",
-                                           "s:path", cpuQOMPath,
-                                           NULL)))
-        return -1;
-
-    if (qemuMonitorJSONCommand(mon, cmd, &reply) < 0)
-        return -1;
-
-    if ((data = virJSONValueObjectGet(reply, "error"))) {
-        const char *klass = virJSONValueObjectGetString(data, "class");
-        if (STREQ_NULLABLE(klass, "DeviceNotFound") ||
-            STREQ_NULLABLE(klass, "CommandNotFound")) {
-            return 0;
-        }
-    }
-
-    if (!(data = qemuMonitorJSONGetReply(cmd, reply, VIR_JSON_TYPE_ARRAY)))
-        return -1;
-
-    n = virJSONValueArraySize(data);
-
-    for (i = 0; i < n; i++) {
-        virJSONValue *element = virJSONValueArrayGet(data, i);
-        if (STREQ_NULLABLE(virJSONValueObjectGetString(element, "name"),
-                           "feature-words"))
-            return 1;
-    }
-
-    return 0;
-}
-
-
-/**
- * qemuMonitorJSONGetGuestCPUx86:
- * @mon: Pointer to the monitor
- * @cpuQOMPath: QOM path of a CPU to probe
- * @data: returns the cpu data of the guest
- * @disabled: returns the CPU data for features which were disabled by QEMU
- *
- * Retrieve the definition of the guest CPU from a running qemu instance.
- *
- * Returns 0 on success, -2 if guest doesn't support this feature,
- * -1 on other errors.
- */
-int
-qemuMonitorJSONGetGuestCPUx86(qemuMonitor *mon,
-                              const char *cpuQOMPath,
-                              virCPUData **data,
-                              virCPUData **disabled)
-{
-    g_autoptr(virCPUData) cpuEnabled = NULL;
-    g_autoptr(virCPUData) cpuDisabled = NULL;
-    int rc;
-
-    if ((rc = qemuMonitorJSONCheckCPUx86(mon, cpuQOMPath)) < 0)
-        return -1;
-    else if (!rc)
-        return -2;
-
-    if (qemuMonitorJSONGetCPUx86Data(mon, cpuQOMPath, "feature-words",
-                                     &cpuEnabled) < 0)
-        return -1;
-
-    if (disabled &&
-        qemuMonitorJSONGetCPUx86Data(mon, cpuQOMPath, "filtered-features",
-                                     &cpuDisabled) < 0)
-        return -1;
-
-    *data = g_steal_pointer(&cpuEnabled);
-    if (disabled)
-        *disabled = g_steal_pointer(&cpuDisabled);
-    return 0;
-}
-
-
 static int
 qemuMonitorJSONGetCPUProperties(qemuMonitor *mon,
                                 const char *cpuQOMPath,
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index 059834648d..2988ffb157 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -4579,29 +4579,22 @@ qemuProcessFetchGuestCPU(virDomainObj *vm,
     g_autoptr(virCPUData) dataEnabled = NULL;
     g_autoptr(virCPUData) dataDisabled = NULL;
     const char *cpuQOMPath = qemuProcessGetVCPUQOMPath(vm);
-    bool generic;
     int rc;
 
     *enabled = NULL;
     *disabled = NULL;
 
-    generic = virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_CPU_UNAVAILABLE_FEATURES);
-
-    if (!generic && !ARCH_IS_X86(vm->def->os.arch))
+    if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_CPU_UNAVAILABLE_FEATURES))
         return 0;
 
     if (qemuDomainObjEnterMonitorAsync(vm, asyncJob) < 0)
         return -1;
 
-    if (generic) {
-        rc = qemuMonitorGetGuestCPU(priv->mon,
-                                    vm->def->os.arch,
-                                    cpuQOMPath,
-                                    virQEMUCapsCPUFeatureFromQEMU,
-                                    &dataEnabled, &dataDisabled);
-    } else {
-        rc = qemuMonitorGetGuestCPUx86(priv->mon, cpuQOMPath, &dataEnabled, &dataDisabled);
-    }
+    rc = qemuMonitorGetGuestCPU(priv->mon,
+                                vm->def->os.arch,
+                                cpuQOMPath,
+                                virQEMUCapsCPUFeatureFromQEMU,
+                                &dataEnabled, &dataDisabled);
 
     qemuDomainObjExitMonitor(vm);
 
diff --git a/tests/qemumonitorjsondata/qemumonitorjson-getcpu-ecx.data b/tests/qemumonitorjsondata/qemumonitorjson-getcpu-ecx.data
deleted file mode 100644
index 457bbbe339..0000000000
--- a/tests/qemumonitorjsondata/qemumonitorjson-getcpu-ecx.data
+++ /dev/null
@@ -1,7 +0,0 @@
-<cpudata arch='x86'>
-  <cpuid eax_in='0x00000001' ecx_in='0x00000000' eax='0x00000000' ebx='0x00000000' ecx='0xf7fa3203' edx='0x0f8bfbff'/>
-  <cpuid eax_in='0x00000007' ecx_in='0x00000000' eax='0x00000000' ebx='0x001c0fbb' ecx='0x00000000' edx='0x00000000'/>
-  <cpuid eax_in='0x0000000d' ecx_in='0x00000001' eax='0x00000001' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
-  <cpuid eax_in='0x40000001' ecx_in='0x00000000' eax='0x010000fb' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
-  <cpuid eax_in='0x80000001' ecx_in='0x00000000' eax='0x00000000' ebx='0x00000000' ecx='0x00000121' edx='0x2c100800'/>
-</cpudata>
diff --git a/tests/qemumonitorjsondata/qemumonitorjson-getcpu-ecx.json b/tests/qemumonitorjsondata/qemumonitorjson-getcpu-ecx.json
deleted file mode 100644
index 9eca2dec11..0000000000
--- a/tests/qemumonitorjsondata/qemumonitorjson-getcpu-ecx.json
+++ /dev/null
@@ -1,57 +0,0 @@
-{
-  "return": [
-    {
-      "cpuid-register": "EAX",
-      "cpuid-input-ecx": 1,
-      "cpuid-input-eax": 13,
-      "features": 1
-    },
-    {
-      "cpuid-register": "EDX",
-      "cpuid-input-eax": 2147483658,
-      "features": 0
-    },
-    {
-      "cpuid-register": "EAX",
-      "cpuid-input-eax": 1073741825,
-      "features": 16777467
-    },
-    {
-      "cpuid-register": "EDX",
-      "cpuid-input-eax": 3221225473,
-      "features": 0
-    },
-    {
-      "cpuid-register": "EDX",
-      "cpuid-input-eax": 2147483655,
-      "features": 0
-    },
-    {
-      "cpuid-register": "ECX",
-      "cpuid-input-eax": 2147483649,
-      "features": 289
-    },
-    {
-      "cpuid-register": "EDX",
-      "cpuid-input-eax": 2147483649,
-      "features": 739248128
-    },
-    {
-      "cpuid-register": "EBX",
-      "cpuid-input-ecx": 0,
-      "cpuid-input-eax": 7,
-      "features": 1839035
-    },
-    {
-      "cpuid-register": "ECX",
-      "cpuid-input-eax": 1,
-      "features": 4160369155
-    },
-    {
-      "cpuid-register": "EDX",
-      "cpuid-input-eax": 1,
-      "features": 260832255
-    }
-  ],
-  "id": "feature-words"
-}
diff --git a/tests/qemumonitorjsondata/qemumonitorjson-getcpu-full.data b/tests/qemumonitorjsondata/qemumonitorjson-getcpu-full.data
deleted file mode 100644
index b581821060..0000000000
--- a/tests/qemumonitorjsondata/qemumonitorjson-getcpu-full.data
+++ /dev/null
@@ -1,5 +0,0 @@
-<cpudata arch='x86'>
-  <cpuid eax_in='0x00000001' ecx_in='0x00000000' eax='0x00000000' ebx='0x00000000' ecx='0x97ba2223' edx='0x078bfbfd'/>
-  <cpuid eax_in='0x40000001' ecx_in='0x00000000' eax='0x0100003b' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
-  <cpuid eax_in='0x80000001' ecx_in='0x00000000' eax='0x00000000' ebx='0x00000000' ecx='0x00000001' edx='0x28100800'/>
-</cpudata>
diff --git a/tests/qemumonitorjsondata/qemumonitorjson-getcpu-full.json b/tests/qemumonitorjsondata/qemumonitorjson-getcpu-full.json
deleted file mode 100644
index 29c00b4c95..0000000000
--- a/tests/qemumonitorjsondata/qemumonitorjson-getcpu-full.json
+++ /dev/null
@@ -1,46 +0,0 @@
-{
-    "return": [
-        {
-            "cpuid-register": "EDX",
-            "cpuid-input-eax": 2147483658,
-            "features": 0
-        },
-        {
-            "cpuid-register": "EAX",
-            "cpuid-input-eax": 1073741825,
-            "features": 16777275
-        },
-        {
-            "cpuid-register": "EDX",
-            "cpuid-input-eax": 3221225473,
-            "features": 0
-        },
-        {
-            "cpuid-register": "ECX",
-            "cpuid-input-eax": 2147483649,
-            "features": 1
-        },
-        {
-            "cpuid-register": "EDX",
-            "cpuid-input-eax": 2147483649,
-            "features": 672139264
-        },
-        {
-            "cpuid-register": "EBX",
-            "cpuid-input-ecx": 0,
-            "cpuid-input-eax": 7,
-            "features": 0
-        },
-        {
-            "cpuid-register": "ECX",
-            "cpuid-input-eax": 1,
-            "features": 2545558051
-        },
-        {
-            "cpuid-register": "EDX",
-            "cpuid-input-eax": 1,
-            "features": 126614525
-        }
-    ],
-    "id": "libvirt-6"
-}
diff --git a/tests/qemumonitorjsondata/qemumonitorjson-getcpu-host.data b/tests/qemumonitorjsondata/qemumonitorjson-getcpu-host.data
deleted file mode 100644
index a4c503e201..0000000000
--- a/tests/qemumonitorjsondata/qemumonitorjson-getcpu-host.data
+++ /dev/null
@@ -1,6 +0,0 @@
-<cpudata arch='x86'>
-  <cpuid eax_in='0x00000001' ecx_in='0x00000000' eax='0x00000000' ebx='0x00000000' ecx='0x97ba2223' edx='0x0f8bfbff'/>
-  <cpuid eax_in='0x00000007' ecx_in='0x00000000' eax='0x00000000' ebx='0x00000002' ecx='0x00000000' edx='0x00000000'/>
-  <cpuid eax_in='0x40000001' ecx_in='0x00000000' eax='0x0100007b' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
-  <cpuid eax_in='0x80000001' ecx_in='0x00000000' eax='0x00000000' ebx='0x00000000' ecx='0x00000001' edx='0x2993fbff'/>
-</cpudata>
diff --git a/tests/qemumonitorjsondata/qemumonitorjson-getcpu-host.json b/tests/qemumonitorjsondata/qemumonitorjson-getcpu-host.json
deleted file mode 100644
index b5fb9f3778..0000000000
--- a/tests/qemumonitorjsondata/qemumonitorjson-getcpu-host.json
+++ /dev/null
@@ -1,45 +0,0 @@
-{
-    "return": [
-        {
-            "cpuid-register": "EDX",
-            "cpuid-input-eax": 2147483658,
-            "features": 0
-        },
-        {
-            "cpuid-register": "EAX",
-            "cpuid-input-eax": 1073741825,
-            "features": 16777339
-        },
-        {
-            "cpuid-register": "EDX",
-            "cpuid-input-eax": 3221225473,
-            "features": 0
-        },
-        {
-            "cpuid-register": "ECX",
-            "cpuid-input-eax": 2147483649,
-            "features": 1
-        },
-        {
-            "cpuid-register": "EDX",
-            "cpuid-input-eax": 2147483649,
-            "features": 697564159
-        },
-        {
-            "cpuid-register": "EBX",
-            "cpuid-input-ecx": 0,
-            "cpuid-input-eax": 7,
-            "features": 2
-        },
-        {
-            "cpuid-register": "ECX",
-            "cpuid-input-eax": 1,
-            "features": 2545558051
-        },
-        {
-            "cpuid-register": "EDX",
-            "cpuid-input-eax": 1,
-            "features": 260832255
-        }
-    ]
-}
diff --git a/tests/qemumonitorjsontest.c b/tests/qemumonitorjsontest.c
index 65b14ca318..7d128b6876 100644
--- a/tests/qemumonitorjsontest.c
+++ b/tests/qemumonitorjsontest.c
@@ -30,7 +30,6 @@
 #include "qemu/qemu_alias.h"
 #include "qemu/qemu_chardev.h"
 #include "virerror.h"
-#include "cpu/cpu.h"
 #include "qemu/qemu_monitor.h"
 #include "qemu/qemu_migration_params.h"
 #define LIBVIRT_QEMU_MIGRATION_PARAMSPRIV_H_ALLOW
@@ -2109,108 +2108,6 @@ testQemuMonitorJSONqemuMonitorJSONGetDumpGuestMemoryCapability(const void *opaqu
     return 0;
 }
 
-struct testCPUData {
-    const char *name;
-    virDomainXMLOption *xmlopt;
-    GHashTable *schema;
-};
-
-
-static int
-testQemuMonitorJSONGetCPUData(const void *opaque)
-{
-    const struct testCPUData *data = opaque;
-    g_autoptr(virCPUData) cpuData = NULL;
-    g_autofree char *jsonFile = NULL;
-    g_autofree char *dataFile = NULL;
-    g_autofree char *jsonStr = NULL;
-    g_autofree char *actual = NULL;
-    g_autoptr(qemuMonitorTest) test = NULL;
-
-    if (!(test = qemuMonitorTestNewSchema(data->xmlopt, data->schema)))
-        return -1;
-
-    jsonFile = g_strdup_printf("%s/qemumonitorjsondata/qemumonitorjson-getcpu-%s.json",
-                               abs_srcdir, data->name);
-    dataFile = g_strdup_printf("%s/qemumonitorjsondata/qemumonitorjson-getcpu-%s.data",
-                               abs_srcdir, data->name);
-
-    if (virTestLoadFile(jsonFile, &jsonStr) < 0)
-        return -1;
-
-    if (qemuMonitorTestAddItem(test, "qom-list",
-                               "{"
-                               "    \"return\": ["
-                               "        {"
-                               "            \"name\": \"filtered-features\","
-                               "            \"type\": \"X86CPUFeatureWordInfo\""
-                               "        },"
-                               "        {"
-                               "            \"name\": \"feature-words\","
-                               "            \"type\": \"X86CPUFeatureWordInfo\""
-                               "        }"
-                               "    ],"
-                               "    \"id\": \"libvirt-19\""
-                               "}") < 0)
-        return -1;
-
-    if (qemuMonitorTestAddItem(test, "qom-get", jsonStr) < 0)
-        return -1;
-
-    if (qemuMonitorJSONGetGuestCPUx86(qemuMonitorTestGetMonitor(test),
-                                      "dummy",
-                                      &cpuData, NULL) < 0)
-        return -1;
-
-    if (!(actual = virCPUDataFormat(cpuData)))
-        return -1;
-
-    if (virTestCompareToFile(actual, dataFile) < 0)
-        return -1;
-
-    return 0;
-}
-
-static int
-testQemuMonitorJSONGetNonExistingCPUData(const void *opaque)
-{
-    const testGenericData *data = opaque;
-    virDomainXMLOption *xmlopt = data->xmlopt;
-    g_autoptr(virCPUData) cpuData = NULL;
-    int rv;
-    g_autoptr(qemuMonitorTest) test = NULL;
-
-    if (!(test = qemuMonitorTestNewSchema(xmlopt, data->schema)))
-        return -1;
-
-    if (qemuMonitorTestAddItem(test, "qom-list",
-                               "{"
-                               "    \"id\": \"libvirt-7\","
-                               "    \"error\": {"
-                               "        \"class\": \"CommandNotFound\","
-                               "        \"desc\": \"The command qom-list has not been found\""
-                               "    }"
-                               "}") < 0)
-        return -1;
-
-    rv = qemuMonitorJSONGetGuestCPUx86(qemuMonitorTestGetMonitor(test),
-                                       "dummy",
-                                       &cpuData, NULL);
-    if (rv != -2) {
-        virReportError(VIR_ERR_INTERNAL_ERROR,
-                       "Unexpected return value %d, expecting -2", rv);
-        return -1;
-    }
-
-    if (cpuData) {
-        virReportError(VIR_ERR_INTERNAL_ERROR,
-                       "Unexpected allocation of data = %p, expecting NULL",
-                       cpuData);
-        return -1;
-    }
-
-    return 0;
-}
 
 static int
 testQemuMonitorJSONGetIOThreads(const void *opaque)
@@ -2924,14 +2821,6 @@ mymain(void)
 #define DO_TEST_GEN_DEPRECATED(name, removed, ...) \
     DO_TEST_GEN_FULL(name, true, removed, __VA_ARGS__)
 
-#define DO_TEST_CPU_DATA(name) \
-    do { \
-        struct testCPUData data = { name, driver.xmlopt, qapiData.schema }; \
-        const char *label = "GetCPUData(" name ")"; \
-        if (virTestRun(label, testQemuMonitorJSONGetCPUData, &data) < 0) \
-            ret = -1; \
-    } while (0)
-
 #define DO_TEST_CPU_INFO(name, maxvcpus) \
     do { \
         struct testCPUInfoData data = {name, maxvcpus, driver.xmlopt, \
@@ -2953,7 +2842,6 @@ mymain(void)
     DO_TEST(SetObjectProperty);
     DO_TEST(GetDeviceAliases);
     DO_TEST(CPU);
-    DO_TEST(GetNonExistingCPUData);
     DO_TEST(GetIOThreads);
     DO_TEST(GetSEVInfo);
     DO_TEST(Transaction);
@@ -3015,10 +2903,6 @@ mymain(void)
     DO_TEST(qemuMonitorJSONSnapshot);
     DO_TEST(qemuMonitorJSONBlockdevSetActive);
 
-    DO_TEST_CPU_DATA("host");
-    DO_TEST_CPU_DATA("full");
-    DO_TEST_CPU_DATA("ecx");
-
     DO_TEST_CPU_INFO("x86-basic-pluggable", 8);
     DO_TEST_CPU_INFO("x86-full", 11);
     DO_TEST_CPU_INFO("x86-node-full", 8);
-- 
2.51.0