[PATCH 00/14] qemu: Optimize guest CPU probing

When a domain starts we need to check what CPU features were enabled and if any of the features we asked for were disabled. Currently this requires more than 470 QMP commands (and the number is growing everytime QEMU adds a new feature or other property to the CPU object). Thanks to a new qom-list-get QMP command introduced by QEMU 7.1 we can replace all those commands with just a single one. On my host using a minimal domain with no devices the startup time went down to about 200 ms from 400 ms before this series. Jiri Denemark (14): qemu: Drop legacy probing of CPU features tests: Add a test for qemuMonitorJSONGetGuestCPU tests: Test qemuMonitorJSONGetGuestCPU with empty unavailable-features qemu: Generalize filtering in qemuMonitorJSONParsePropsList qemu: Move feature filtering to qemuMonitorJSONGetCPUProperties qemu: Parse properties list from any JSON array qemu: Use qom-list-get for checking enabled CPU features tests: Test qemuMonitorJSONGetGuestCPU with qom-get-list qemu: Add qemuMonitorJSONCPUDataAddFeatures helper qemu: Merge qemuMonitorJSONGetCPUData in qemuMonitorJSONGetGuestCPU qemu: Always fetch disabled features in qemuMonitorJSONGetGuestCPU qemu: Merge qemuMonitorJSONGetCPUDataDisabled in qemuMonitorJSONGetGuestCPU qemu: Let qemuMonitorJSONGetCPUProperties also return disabled features qemu: Don't query unavailable-features if qom-list-get is supported src/qemu/qemu_capabilities.c | 2 + src/qemu/qemu_capabilities.h | 1 + src/qemu/qemu_monitor.c | 43 +- src/qemu/qemu_monitor.h | 6 +- src/qemu/qemu_monitor_json.c | 383 +- src/qemu/qemu_monitor_json.h | 7 +- src/qemu/qemu_process.c | 20 +- .../caps_10.1.0_x86_64.xml | 1 + .../caps_10.2.0_x86_64.xml | 1 + .../get-guest-cpu-SierraForest-disabled.xml | 7 + .../get-guest-cpu-SierraForest-enabled.xml | 9 + .../get-guest-cpu-SierraForest-legacy.json | 8680 +++++++++++++++++ .../get-guest-cpu-SierraForest.json | 2962 ++++++ .../get-guest-cpu-SkylakeClient-disabled.xml | 2 + ...> get-guest-cpu-SkylakeClient-enabled.xml} | 10 +- .../get-guest-cpu-SkylakeClient-legacy.json | 8671 ++++++++++++++++ .../get-guest-cpu-SkylakeClient.json | 2953 ++++++ .../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 | 191 +- 23 files changed, 23532 insertions(+), 576 deletions(-) create mode 100644 tests/qemumonitorjsondata/get-guest-cpu-SierraForest-disabled.xml create mode 100644 tests/qemumonitorjsondata/get-guest-cpu-SierraForest-enabled.xml create mode 100644 tests/qemumonitorjsondata/get-guest-cpu-SierraForest-legacy.json create mode 100644 tests/qemumonitorjsondata/get-guest-cpu-SierraForest.json create mode 100644 tests/qemumonitorjsondata/get-guest-cpu-SkylakeClient-disabled.xml rename tests/qemumonitorjsondata/{qemumonitorjson-getcpu-ecx.data => get-guest-cpu-SkylakeClient-enabled.xml} (53%) create mode 100644 tests/qemumonitorjsondata/get-guest-cpu-SkylakeClient-legacy.json create mode 100644 tests/qemumonitorjsondata/get-guest-cpu-SkylakeClient.json 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 -- 2.51.0

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

On Thu, Sep 04, 2025 at 16:46:49 +0200, Jiri Denemark via Devel wrote:
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.
Preferrably mention also why the statement above is true. In this case QEMU_CAPS_CPU_UNAVAILABLE_FEATURES detected by probing the presence of 'unavailable-features' is present on all x86 versions we care about
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
Reviewed-by: Peter Krempa <pkrempa@redhat.com>

From: Jiri Denemark <jdenemar@redhat.com> The SierraForest CPU was just randomly chosen and it doesn't mean we should have test cases for all CPU models. Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- .../get-guest-cpu-SierraForest-disabled.xml | 7 + .../get-guest-cpu-SierraForest-enabled.xml | 9 + .../get-guest-cpu-SierraForest.json | 8680 +++++++++++++++++ tests/qemumonitorjsontest.c | 66 + 4 files changed, 8762 insertions(+) create mode 100644 tests/qemumonitorjsondata/get-guest-cpu-SierraForest-disabled.xml create mode 100644 tests/qemumonitorjsondata/get-guest-cpu-SierraForest-enabled.xml create mode 100644 tests/qemumonitorjsondata/get-guest-cpu-SierraForest.json diff --git a/tests/qemumonitorjsondata/get-guest-cpu-SierraForest-disabled.xml b/tests/qemumonitorjsondata/get-guest-cpu-SierraForest-disabled.xml new file mode 100644 index 0000000000..78525b0090 --- /dev/null +++ b/tests/qemumonitorjsondata/get-guest-cpu-SierraForest-disabled.xml @@ -0,0 +1,7 @@ +<cpudata arch='x86'> + <cpuid eax_in='0x00000007' ecx_in='0x00000000' eax='0x00000000' ebx='0x00000000' ecx='0x01000000' edx='0x00000000'/> + <cpuid eax_in='0x00000007' ecx_in='0x00000001' eax='0x00800080' ebx='0x00000000' ecx='0x00000000' edx='0x00000030'/> + <cpuid eax_in='0x00000007' ecx_in='0x00000002' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000020'/> + <cpuid eax_in='0x80000008' ecx_in='0x00000000' eax='0x00000000' ebx='0x00000200' ecx='0x00000000' edx='0x00000000'/> + <msr index='0x10a' eax='0x01000000' edx='0x00000000'/> +</cpudata> diff --git a/tests/qemumonitorjsondata/get-guest-cpu-SierraForest-enabled.xml b/tests/qemumonitorjsondata/get-guest-cpu-SierraForest-enabled.xml new file mode 100644 index 0000000000..b544d30ea4 --- /dev/null +++ b/tests/qemumonitorjsondata/get-guest-cpu-SierraForest-enabled.xml @@ -0,0 +1,9 @@ +<cpudata arch='x86'> + <cpuid eax_in='0x00000001' ecx_in='0x00000000' eax='0x00000000' ebx='0x00000000' ecx='0xf7fa3203' edx='0x078bfbff'/> + <cpuid eax_in='0x00000006' ecx_in='0x00000000' eax='0x00000004' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/> + <cpuid eax_in='0x00000007' ecx_in='0x00000000' eax='0x00000000' ebx='0x219c07a9' ecx='0x0040070c' edx='0xa4004010'/> + <cpuid eax_in='0x00000007' ecx_in='0x00000001' eax='0x00000810' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/> + <cpuid eax_in='0x0000000d' ecx_in='0x00000001' eax='0x0000000f' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/> + <cpuid eax_in='0x80000001' ecx_in='0x00000000' eax='0x00000000' ebx='0x00000000' ecx='0x00000121' edx='0x2c100800'/> + <msr index='0x10a' eax='0x0000e06b' edx='0x00000000'/> +</cpudata> diff --git a/tests/qemumonitorjsondata/get-guest-cpu-SierraForest.json b/tests/qemumonitorjsondata/get-guest-cpu-SierraForest.json new file mode 100644 index 0000000000..95559c5f08 --- /dev/null +++ b/tests/qemumonitorjsondata/get-guest-cpu-SierraForest.json @@ -0,0 +1,8680 @@ +{ + "execute": "qom-list", + "arguments": { + "path": "/machine/unattached/device[0]" + }, + "id": "libvirt-1" +} + +{ + "return": [ + { + "name": "type", + "type": "string" + }, + { + "name": "parent_bus", + "type": "link<bus>" + }, + { + "name": "realized", + "type": "bool" + }, + { + "name": "hotplugged", + "type": "bool" + }, + { + "name": "hotpluggable", + "type": "bool" + }, + { + "name": "memory", + "type": "link<memory-region>" + }, + { + "name": "legacy-memory", + "type": "str" + }, + { + "name": "start-powered-off", + "type": "bool" + }, + { + "name": "vmx-invept-single-context", + "type": "bool" + }, + { + "name": "core-capability", + "type": "bool" + }, + { + "name": "popcnt", + "type": "bool" + }, + { + "name": "sgx-debug", + "type": "bool" + }, + { + "name": "kvm-poll-control", + "type": "bool" + }, + { + "name": "dtes64", + "type": "bool" + }, + { + "name": "vmx-invvpid-single-addr", + "type": "bool" + }, + { + "name": "xstore", + "type": "bool" + }, + { + "name": "min-xlevel2", + "type": "uint32" + }, + { + "name": "stepping", + "type": "int" + }, + { + "name": "x-vendor-cpuid-only-v2", + "type": "bool" + }, + { + "name": "sm4", + "type": "bool" + }, + { + "name": "hv-emsr-bitmap", + "type": "bool" + }, + { + "name": "pse36", + "type": "bool" + }, + { + "name": "avx512-4vnniw", + "type": "bool" + }, + { + "name": "x-intel-pt-auto-level", + "type": "bool" + }, + { + "name": "fma4", + "type": "bool" + }, + { + "name": "avx512-vp2intersect", + "type": "bool" + }, + { + "name": "avx2", + "type": "bool" + }, + { + "name": "amd-psfd", + "type": "bool" + }, + { + "name": "amd-stibp", + "type": "bool" + }, + { + "name": "sgxlc", + "type": "bool" + }, + { + "name": "sm3", + "type": "bool" + }, + { + "name": "family", + "type": "int" + }, + { + "name": "vmx-ept-advanced-exitinfo", + "type": "bool" + }, + { + "name": "vmx-store-lma", + "type": "bool" + }, + { + "name": "msr-imm", + "type": "bool" + }, + { + "name": "vmware-cpuid-freq", + "type": "bool" + }, + { + "name": "hv-spinlocks", + "type": "uint32" + }, + { + "name": "x-force-cpuid-0x1f", + "type": "bool" + }, + { + "name": "ddpd-u", + "type": "bool" + }, + { + "name": "vmx-nested-exception", + "type": "bool" + }, + { + "name": "vmx-entry-noload-debugctl", + "type": "bool" + }, + { + "name": "bhi-no", + "type": "bool" + }, + { + "name": "amx-fp16", + "type": "bool" + }, + { + "name": "erms", + "type": "bool" + }, + { + "name": "vaes", + "type": "bool" + }, + { + "name": "vmx-eptad", + "type": "bool" + }, + { + "name": "vmx-activity-wait-sipi", + "type": "bool" + }, + { + "name": "vmx-flexpriority", + "type": "bool" + }, + { + "name": "hv-reset", + "type": "bool" + }, + { + "name": "rdrand", + "type": "bool" + }, + { + "name": "lam", + "type": "bool" + }, + { + "name": "vmx-pause-exit", + "type": "bool" + }, + { + "name": "vmx-shadow-vmcs", + "type": "bool" + }, + { + "name": "model", + "type": "int" + }, + { + "name": "avx512-vpopcntdq", + "type": "bool" + }, + { + "name": "xcrypt", + "type": "bool" + }, + { + "name": "tbm", + "type": "bool" + }, + { + "name": "movdiri", + "type": "bool" + }, + { + "name": "vmx-monitor-exit", + "type": "bool" + }, + { + "name": "kvm-pv-eoi", + "type": "bool" + }, + { + "name": "hv-version-id-spack", + "type": "uint32" + }, + { + "name": "lm", + "type": "bool" + }, + { + "name": "x-vendor-cpuid-only", + "type": "bool" + }, + { + "name": "pbrsb-no", + "type": "bool" + }, + { + "name": "vmx-unrestricted-guest", + "type": "bool" + }, + { + "name": "host-phys-bits-limit", + "type": "uint8" + }, + { + "name": "pae", + "type": "bool" + }, + { + "name": "ssse3", + "type": "bool" + }, + { + "name": "hv-runtime", + "type": "bool" + }, + { + "name": "phe", + "type": "bool" + }, + { + "name": "guest-phys-bits", + "type": "uint32" + }, + { + "name": "host-phys-bits", + "type": "bool" + }, + { + "name": "taa-no", + "type": "bool" + }, + { + "name": "sgx-aex-notify", + "type": "bool" + }, + { + "name": "full-width-write", + "type": "bool" + }, + { + "name": "arat", + "type": "bool" + }, + { + "name": "avx512vbmi2", + "type": "bool" + }, + { + "name": "sha512", + "type": "bool" + }, + { + "name": "arch-lbr", + "type": "bool" + }, + { + "name": "vmx-vnmi-pending", + "type": "bool" + }, + { + "name": "vmx-any-errcode", + "type": "bool" + }, + { + "name": "x2apic", + "type": "bool" + }, + { + "name": "npt", + "type": "bool" + }, + { + "name": "pmm-en", + "type": "bool" + }, + { + "name": "vmx-invpcid-exit", + "type": "bool" + }, + { + "name": "avx512ifma", + "type": "bool" + }, + { + "name": "ibpb-brtype", + "type": "bool" + }, + { + "name": "model-id", + "type": "string" + }, + { + "name": "ucode-rev", + "type": "uint64" + }, + { + "name": "hv-evmcs", + "type": "bool" + }, + { + "name": "srso-user-kernel-no", + "type": "bool" + }, + { + "name": "vmx-io-exit", + "type": "bool" + }, + { + "name": "tsc", + "type": "bool" + }, + { + "name": "x-force-features", + "type": "bool" + }, + { + "name": "vmx-ins-outs", + "type": "bool" + }, + { + "name": "dca", + "type": "bool" + }, + { + "name": "vmx-apicv-x2apic", + "type": "bool" + }, + { + "name": "perfctr-core", + "type": "bool" + }, + { + "name": "ia64", + "type": "bool" + }, + { + "name": "fdp-excptn-only", + "type": "bool" + }, + { + "name": "hv-stimer-direct", + "type": "bool" + }, + { + "name": "gds-no", + "type": "bool" + }, + { + "name": "vmx-exit-secondary-ctls", + "type": "bool" + }, + { + "name": "vmx-cr3-load-noexit", + "type": "bool" + }, + { + "name": "rfds-no", + "type": "bool" + }, + { + "name": "pmu", + "type": "bool" + }, + { + "name": "vmx-entry-load-rtit-ctl", + "type": "bool" + }, + { + "name": "kvmclock", + "type": "bool" + }, + { + "name": "avx10", + "type": "bool" + }, + { + "name": "vmx-invept-single-context-noglobals", + "type": "bool" + }, + { + "name": "xen-vapic", + "type": "bool" + }, + { + "name": "md-clear", + "type": "bool" + }, + { + "name": "invtsc", + "type": "bool" + }, + { + "name": "pn", + "type": "bool" + }, + { + "name": "avx512cd", + "type": "bool" + }, + { + "name": "cmp-legacy", + "type": "bool" + }, + { + "name": "cx16", + "type": "bool" + }, + { + "name": "avx512dq", + "type": "bool" + }, + { + "name": "abm", + "type": "bool" + }, + { + "name": "vmx-activity-shutdown", + "type": "bool" + }, + { + "name": "auto-ibrs", + "type": "bool" + }, + { + "name": "kvm-pv-ipi", + "type": "bool" + }, + { + "name": "avx10-128", + "type": "bool" + }, + { + "name": "vmx-apicv-register", + "type": "bool" + }, + { + "name": "fxsr-opt", + "type": "bool" + }, + { + "name": "skip-l1dfl-vmentry", + "type": "bool" + }, + { + "name": "fill-mtrr-mask", + "type": "bool" + }, + { + "name": "x-migrate-smi-count", + "type": "bool" + }, + { + "name": "wbnoinvd", + "type": "bool" + }, + { + "name": "sgx1", + "type": "bool" + }, + { + "name": "rdpid", + "type": "bool" + }, + { + "name": "pcid", + "type": "bool" + }, + { + "name": "bhi-ctrl", + "type": "bool" + }, + { + "name": "syscall", + "type": "bool" + }, + { + "name": "pse", + "type": "bool" + }, + { + "name": "rrsba-ctrl", + "type": "bool" + }, + { + "name": "avx-ne-convert", + "type": "bool" + }, + { + "name": "xsaves", + "type": "bool" + }, + { + "name": "vmx-entry-load-pat", + "type": "bool" + }, + { + "name": "vgif", + "type": "bool" + }, + { + "name": "mce", + "type": "bool" + }, + { + "name": "xfd", + "type": "bool" + }, + { + "name": "node-id", + "type": "int32" + }, + { + "name": "sgx-tokenkey", + "type": "bool" + }, + { + "name": "ibpb", + "type": "bool" + }, + { + "name": "x-amd-topoext-features-only", + "type": "bool" + }, + { + "name": "vmx-apicv-xapic", + "type": "bool" + }, + { + "name": "vmx-hlt-exit", + "type": "bool" + }, + { + "name": "lwp", + "type": "bool" + }, + { + "name": "eraps", + "type": "bool" + }, + { + "name": "cldemote", + "type": "bool" + }, + { + "name": "vmx-exit-load-pkrs", + "type": "bool" + }, + { + "name": "rtm", + "type": "bool" + }, + { + "name": "hv-tlbflush", + "type": "bool" + }, + { + "name": "kvm-steal-time", + "type": "bool" + }, + { + "name": "cpuid-0xb", + "type": "bool" + }, + { + "name": "fsrs", + "type": "bool" + }, + { + "name": "sgx-provisionkey", + "type": "bool" + }, + { + "name": "vmx-eptp-switching", + "type": "bool" + }, + { + "name": "vmx-invlpg-exit", + "type": "bool" + }, + { + "name": "vmx-entry-load-efer", + "type": "bool" + }, + { + "name": "level-func7", + "type": "uint32" + }, + { + "name": "die-id", + "type": "int32" + }, + { + "name": "vmx-exit-save-efer", + "type": "bool" + }, + { + "name": "x-l1-cache-per-thread", + "type": "bool" + }, + { + "name": "vme", + "type": "bool" + }, + { + "name": "kvm-pv-unhalt", + "type": "bool" + }, + { + "name": "vmx-desc-exit", + "type": "bool" + }, + { + "name": "sgx-kss", + "type": "bool" + }, + { + "name": "vmx-invvpid", + "type": "bool" + }, + { + "name": "vmx-entry-ia32e-mode", + "type": "bool" + }, + { + "name": "svm", + "type": "bool" + }, + { + "name": "kvm-hint-dedicated", + "type": "bool" + }, + { + "name": "vmx-ept-execonly", + "type": "bool" + }, + { + "name": "avx-ifma", + "type": "bool" + }, + { + "name": "module-id", + "type": "int32" + }, + { + "name": "mca", + "type": "bool" + }, + { + "name": "vmx-tsc-scaling", + "type": "bool" + }, + { + "name": "mtrr", + "type": "bool" + }, + { + "name": "cid", + "type": "bool" + }, + { + "name": "pfthreshold", + "type": "bool" + }, + { + "name": "pmm", + "type": "bool" + }, + { + "name": "lahf-lm", + "type": "bool" + }, + { + "name": "zero-fcs-fds", + "type": "bool" + }, + { + "name": "hv-version-id-build", + "type": "uint32" + }, + { + "name": "vmx-entry-load-pkrs", + "type": "bool" + }, + { + "name": "tcg-cpuid", + "type": "bool" + }, + { + "name": "no-nested-data-bp", + "type": "bool" + }, + { + "name": "legacy-multi-node", + "type": "bool" + }, + { + "name": "x-hv-max-vps", + "type": "int32" + }, + { + "name": "tm", + "type": "bool" + }, + { + "name": "pbe", + "type": "bool" + }, + { + "name": "amx-int8", + "type": "bool" + }, + { + "name": "vmx-rdpmc-exit", + "type": "bool" + }, + { + "name": "intel-psfd", + "type": "bool" + }, + { + "name": "fs-gs-base-ns", + "type": "bool" + }, + { + "name": "split-lock-detect", + "type": "bool" + }, + { + "name": "apic-id", + "type": "uint32" + }, + { + "name": "fpu", + "type": "bool" + }, + { + "name": "skinit", + "type": "bool" + }, + { + "name": "l3-cache", + "type": "bool" + }, + { + "name": "sep", + "type": "bool" + }, + { + "name": "vmx-exit-load-pat", + "type": "bool" + }, + { + "name": "intel-pt-lip", + "type": "bool" + }, + { + "name": "avx10-512", + "type": "bool" + }, + { + "name": "hv-tlbflush-direct", + "type": "bool" + }, + { + "name": "avx512-bf16", + "type": "bool" + }, + { + "name": "overflow-recov", + "type": "bool" + }, + { + "name": "vmx-vnmi", + "type": "bool" + }, + { + "name": "vmx-rdtscp-exit", + "type": "bool" + }, + { + "name": "amx-complex", + "type": "bool" + }, + { + "name": "nx", + "type": "bool" + }, + { + "name": "vmx-invvpid-all-context", + "type": "bool" + }, + { + "name": "avx-vnni-int8", + "type": "bool" + }, + { + "name": "vmx-vmwrite-vmexit-fields", + "type": "bool" + }, + { + "name": "vmx-page-walk-4", + "type": "bool" + }, + { + "name": "rfds-clear", + "type": "bool" + }, + { + "name": "pause-filter", + "type": "bool" + }, + { + "name": "ds-cpl", + "type": "bool" + }, + { + "name": "succor", + "type": "bool" + }, + { + "name": "fred", + "type": "bool" + }, + { + "name": "fsrm", + "type": "bool" + }, + { + "name": "vmx-exit-load-efer", + "type": "bool" + }, + { + "name": "vmx-mtf", + "type": "bool" + }, + { + "name": "vmx-entry-load-fred", + "type": "bool" + }, + { + "name": "vmx-ept", + "type": "bool" + }, + { + "name": "fb-clear", + "type": "bool" + }, + { + "name": "nodeid-msr", + "type": "bool" + }, + { + "name": "vmx-exit-clear-bndcfgs", + "type": "bool" + }, + { + "name": "smap", + "type": "bool" + }, + { + "name": "vmx-io-bitmap", + "type": "bool" + }, + { + "name": "vmx-preemption-timer", + "type": "bool" + }, + { + "name": "vmx-invept-all-context", + "type": "bool" + }, + { + "name": "vmx-intr-exit", + "type": "bool" + }, + { + "name": "prefetchiti", + "type": "bool" + }, + { + "name": "psdp-no", + "type": "bool" + }, + { + "name": "cr8legacy", + "type": "bool" + }, + { + "name": "xlevel", + "type": "uint32" + }, + { + "name": "vmx-vpid", + "type": "bool" + }, + { + "name": "vmx-zero-len-inject", + "type": "bool" + }, + { + "name": "pschange-mc-no", + "type": "bool" + }, + { + "name": "virt-ssbd", + "type": "bool" + }, + { + "name": "umip", + "type": "bool" + }, + { + "name": "avx512er", + "type": "bool" + }, + { + "name": "vmx-vintr-pending", + "type": "bool" + }, + { + "name": "xstore-en", + "type": "bool" + }, + { + "name": "avx512vl", + "type": "bool" + }, + { + "name": "ibrs", + "type": "bool" + }, + { + "name": "rsba", + "type": "bool" + }, + { + "name": "cmov", + "type": "bool" + }, + { + "name": "vmx-posted-intr", + "type": "bool" + }, + { + "name": "xcrypt-en", + "type": "bool" + }, + { + "name": "tm2", + "type": "bool" + }, + { + "name": "lbrv", + "type": "bool" + }, + { + "name": "tsc-scale", + "type": "bool" + }, + { + "name": "vmx-secondary-ctls", + "type": "bool" + }, + { + "name": "xsaveerptr", + "type": "bool" + }, + { + "name": "fsgsbase", + "type": "bool" + }, + { + "name": "x-hv-synic-kvm-only", + "type": "bool" + }, + { + "name": "avx512bw", + "type": "bool" + }, + { + "name": "hv-version-id-minor", + "type": "uint16" + }, + { + "name": "tce", + "type": "bool" + }, + { + "name": "tsc-frequency", + "type": "int" + }, + { + "name": "smx", + "type": "bool" + }, + { + "name": "hle", + "type": "bool" + }, + { + "name": "monitor", + "type": "bool" + }, + { + "name": "avx512-fp16", + "type": "bool" + }, + { + "name": "sse4a", + "type": "bool" + }, + { + "name": "vpclmulqdq", + "type": "bool" + }, + { + "name": "hv-frequencies", + "type": "bool" + }, + { + "name": "kvm-pv-tlb-flush", + "type": "bool" + }, + { + "name": "vmx-rdtsc-exit", + "type": "bool" + }, + { + "name": "vmx-activity-hlt", + "type": "bool" + }, + { + "name": "vmx-entry-load-bndcfgs", + "type": "bool" + }, + { + "name": "sgx-edeccssa", + "type": "bool" + }, + { + "name": "xsavec", + "type": "bool" + }, + { + "name": "vmx-cr8-load-exit", + "type": "bool" + }, + { + "name": "mds-no", + "type": "bool" + }, + { + "name": "svme-addr-chk", + "type": "bool" + }, + { + "name": "amd-no-ssb", + "type": "bool" + }, + { + "name": "xop", + "type": "bool" + }, + { + "name": "adx", + "type": "bool" + }, + { + "name": "perfmon-v2", + "type": "bool" + }, + { + "name": "hv-version-id-sbranch", + "type": "uint8" + }, + { + "name": "crash-information", + "type": "GuestPanicInformation" + }, + { + "name": "min-level", + "type": "uint32" + }, + { + "name": "full-cpuid-auto-level", + "type": "bool" + }, + { + "name": "vmx-exit-ack-intr", + "type": "bool" + }, + { + "name": "vmx-rdseed-exit", + "type": "bool" + }, + { + "name": "pclmulqdq", + "type": "bool" + }, + { + "name": "msr", + "type": "bool" + }, + { + "name": "wrmsrns", + "type": "bool" + }, + { + "name": "kvm-pv-enforce-cpuid", + "type": "bool" + }, + { + "name": "ssb-no", + "type": "bool" + }, + { + "name": "clflush", + "type": "bool" + }, + { + "name": "xlevel2", + "type": "uint32" + }, + { + "name": "mpx", + "type": "bool" + }, + { + "name": "extapic", + "type": "bool" + }, + { + "name": "lfence-always-serializing", + "type": "bool" + }, + { + "name": "hv-enforce-cpuid", + "type": "bool" + }, + { + "name": "hv-stimer", + "type": "bool" + }, + { + "name": "sgx2", + "type": "bool" + }, + { + "name": "kvm-asyncpf-vmexit", + "type": "bool" + }, + { + "name": "smep", + "type": "bool" + }, + { + "name": "vnmi", + "type": "bool" + }, + { + "name": "vmx-mwait-exit", + "type": "bool" + }, + { + "name": "hv-synic", + "type": "bool" + }, + { + "name": "cx8", + "type": "bool" + }, + { + "name": "vmcb-clean", + "type": "bool" + }, + { + "name": "pku", + "type": "bool" + }, + { + "name": "kvm", + "type": "bool" + }, + { + "name": "srso-no", + "type": "bool" + }, + { + "name": "hv-passthrough", + "type": "bool" + }, + { + "name": "lkgs", + "type": "bool" + }, + { + "name": "tsx-ldtrk", + "type": "bool" + }, + { + "name": "hv-tlbflush-ext", + "type": "bool" + }, + { + "name": "stibp", + "type": "bool" + }, + { + "name": "vmx-cr3-store-noexit", + "type": "bool" + }, + { + "name": "tsx-ctrl", + "type": "bool" + }, + { + "name": "clzero", + "type": "bool" + }, + { + "name": "svm-lock", + "type": "bool" + }, + { + "name": "hv-reenlightenment", + "type": "bool" + }, + { + "name": "x-consistent-cache", + "type": "bool" + }, + { + "name": "avic", + "type": "bool" + }, + { + "name": "hv-vpindex", + "type": "bool" + }, + { + "name": "osvw", + "type": "bool" + }, + { + "name": "sgx-exinfo", + "type": "bool" + }, + { + "name": "legacy-cache", + "type": "bool" + }, + { + "name": "sse", + "type": "bool" + }, + { + "name": "fsrc", + "type": "bool" + }, + { + "name": "ds", + "type": "bool" + }, + { + "name": "pks", + "type": "bool" + }, + { + "name": "vmx-ept-2mb", + "type": "bool" + }, + { + "name": "vmx-true-ctls", + "type": "bool" + }, + { + "name": "movdir64b", + "type": "bool" + }, + { + "name": "vmx-ept-1gb", + "type": "bool" + }, + { + "name": "vmx-invept", + "type": "bool" + }, + { + "name": "ipred-ctrl", + "type": "bool" + }, + { + "name": "vmx-rdrand-exit", + "type": "bool" + }, + { + "name": "acpi", + "type": "bool" + }, + { + "name": "vmx-encls-exit", + "type": "bool" + }, + { + "name": "vmx-cr8-store-exit", + "type": "bool" + }, + { + "name": "sbdr-ssdp-no", + "type": "bool" + }, + { + "name": "its-no", + "type": "bool" + }, + { + "name": "kvm-mmu", + "type": "bool" + }, + { + "name": "3dnowprefetch", + "type": "bool" + }, + { + "name": "nrip-save", + "type": "bool" + }, + { + "name": "gfni", + "type": "bool" + }, + { + "name": "flush-l1d", + "type": "bool" + }, + { + "name": "kvm-msi-ext-dest-id", + "type": "bool" + }, + { + "name": "fzrm", + "type": "bool" + }, + { + "name": "serialize", + "type": "bool" + }, + { + "name": "avx512bitalg", + "type": "bool" + }, + { + "name": "rdseed", + "type": "bool" + }, + { + "name": "sha-ni", + "type": "bool" + }, + { + "name": "ace2", + "type": "bool" + }, + { + "name": "lmce", + "type": "bool" + }, + { + "name": "avx10-version", + "type": "uint8" + }, + { + "name": "topoext", + "type": "bool" + }, + { + "name": "f16c", + "type": "bool" + }, + { + "name": "waitpkg", + "type": "bool" + }, + { + "name": "avx512-4fmaps", + "type": "bool" + }, + { + "name": "fbsdp-no", + "type": "bool" + }, + { + "name": "avx", + "type": "bool" + }, + { + "name": "sse2", + "type": "bool" + }, + { + "name": "rdctl-no", + "type": "bool" + }, + { + "name": "mmx", + "type": "bool" + }, + { + "name": "hv-version-id-major", + "type": "uint16" + }, + { + "name": "level", + "type": "uint32" + }, + { + "name": "avx512vnni", + "type": "bool" + }, + { + "name": "pni", + "type": "bool" + }, + { + "name": "movbe", + "type": "bool" + }, + { + "name": "vmx-ple", + "type": "bool" + }, + { + "name": "mmxext", + "type": "bool" + }, + { + "name": "lbr-fmt", + "type": "uint64" + }, + { + "name": "bus-lock-detect", + "type": "bool" + }, + { + "name": "vmx-apicv-vid", + "type": "bool" + }, + { + "name": "vmx-page-walk-5", + "type": "bool" + }, + { + "name": "flushbyasid", + "type": "bool" + }, + { + "name": "rdtscp", + "type": "bool" + }, + { + "name": "clwb", + "type": "bool" + }, + { + "name": "kvm-pv-sched-yield", + "type": "bool" + }, + { + "name": "kvm-asyncpf", + "type": "bool" + }, + { + "name": "avx-vnni-int16", + "type": "bool" + }, + { + "name": "decodeassists", + "type": "bool" + }, + { + "name": "vmx-wbinvd-exit", + "type": "bool" + }, + { + "name": "pat", + "type": "bool" + }, + { + "name": "vmx-exit-clear-rtit-ctl", + "type": "bool" + }, + { + "name": "invpcid", + "type": "bool" + }, + { + "name": "pdpe1gb", + "type": "bool" + }, + { + "name": "vmx-exit-save-pat", + "type": "bool" + }, + { + "name": "unavailable-features", + "type": "strList" + }, + { + "name": "tsc-adjust", + "type": "bool" + }, + { + "name": "vmx-enable-user-wait-pause", + "type": "bool" + }, + { + "name": "ht", + "type": "bool" + }, + { + "name": "amx-tile", + "type": "bool" + }, + { + "name": "clflushopt", + "type": "bool" + }, + { + "name": "hv-xmm-input", + "type": "bool" + }, + { + "name": "vmx-tsc-offset", + "type": "bool" + }, + { + "name": "ssbd", + "type": "bool" + }, + { + "name": "3dnowext", + "type": "bool" + }, + { + "name": "xtpr", + "type": "bool" + }, + { + "name": "sgx", + "type": "bool" + }, + { + "name": "hv-crash", + "type": "bool" + }, + { + "name": "xsave", + "type": "bool" + }, + { + "name": "pdcm", + "type": "bool" + }, + { + "name": "hv-vendor-id", + "type": "str" + }, + { + "name": "est", + "type": "bool" + }, + { + "name": "vendor", + "type": "string" + }, + { + "name": "pge", + "type": "bool" + }, + { + "name": "pcommit", + "type": "bool" + }, + { + "name": "ibs", + "type": "bool" + }, + { + "name": "tsc-deadline", + "type": "bool" + }, + { + "name": "sgx-mode64", + "type": "bool" + }, + { + "name": "kvmclock-stable-bit", + "type": "bool" + }, + { + "name": "misalignsse", + "type": "bool" + }, + { + "name": "vmx-msr-bitmap", + "type": "bool" + }, + { + "name": "check", + "type": "bool" + }, + { + "name": "hv-time", + "type": "bool" + }, + { + "name": "perfctr-nb", + "type": "bool" + }, + { + "name": "hv-avic", + "type": "bool" + }, + { + "name": "vmx-vmfunc", + "type": "bool" + }, + { + "name": "phys-bits", + "type": "uint32" + }, + { + "name": "apic", + "type": "bool" + }, + { + "name": "vmx-exit-save-preemption-timer", + "type": "bool" + }, + { + "name": "prefetchi", + "type": "bool" + }, + { + "name": "vmx-nmi-exit", + "type": "bool" + }, + { + "name": "avx512vbmi", + "type": "bool" + }, + { + "name": "thread-id", + "type": "int32" + }, + { + "name": "min-xlevel", + "type": "uint32" + }, + { + "name": "socket-id", + "type": "int32" + }, + { + "name": "vmx-exit-nosave-debugctl", + "type": "bool" + }, + { + "name": "bmi2", + "type": "bool" + }, + { + "name": "vmx-xsaves", + "type": "bool" + }, + { + "name": "avx512f", + "type": "bool" + }, + { + "name": "arch-capabilities", + "type": "bool" + }, + { + "name": "vmx-exit-load-perf-global-ctrl", + "type": "bool" + }, + { + "name": "vmx-pml", + "type": "bool" + }, + { + "name": "vmx-entry-load-perf-global-ctrl", + "type": "bool" + }, + { + "name": "ace2-en", + "type": "bool" + }, + { + "name": "wdt", + "type": "bool" + }, + { + "name": "intel-pt", + "type": "bool" + }, + { + "name": "kvm-nopiodelay", + "type": "bool" + }, + { + "name": "cmpccxadd", + "type": "bool" + }, + { + "name": "v-vmsave-vmload", + "type": "bool" + }, + { + "name": "avx512pf", + "type": "bool" + }, + { + "name": "bmi1", + "type": "bool" + }, + { + "name": "enforce", + "type": "bool" + }, + { + "name": "sse4.2", + "type": "bool" + }, + { + "name": "hv-syndbg", + "type": "bool" + }, + { + "name": "ibrs-all", + "type": "bool" + }, + { + "name": "xgetbv1", + "type": "bool" + }, + { + "name": "mcdt-no", + "type": "bool" + }, + { + "name": "spec-ctrl", + "type": "bool" + }, + { + "name": "3dnow", + "type": "bool" + }, + { + "name": "kvm-asyncpf-int", + "type": "bool" + }, + { + "name": "vmx", + "type": "bool" + }, + { + "name": "la57", + "type": "bool" + }, + { + "name": "hv-no-nonarch-coresharing", + "type": "OnOffAuto" + }, + { + "name": "amx-bf16", + "type": "bool" + }, + { + "name": "sse4.1", + "type": "bool" + }, + { + "name": "xsaveopt", + "type": "bool" + }, + { + "name": "hv-relaxed", + "type": "bool" + }, + { + "name": "hv-version-id-snumber", + "type": "uint32" + }, + { + "name": "stibp-always-on", + "type": "bool" + }, + { + "name": "sbpb", + "type": "bool" + }, + { + "name": "avx-vnni", + "type": "bool" + }, + { + "name": "fxsr", + "type": "bool" + }, + { + "name": "phe-en", + "type": "bool" + }, + { + "name": "hv-vapic", + "type": "bool" + }, + { + "name": "hv-ipi", + "type": "bool" + }, + { + "name": "null-sel-clr-base", + "type": "bool" + }, + { + "name": "hypervisor", + "type": "bool" + }, + { + "name": "avx10-256", + "type": "bool" + }, + { + "name": "aes", + "type": "bool" + }, + { + "name": "amd-ssbd", + "type": "bool" + }, + { + "name": "core-id", + "type": "int32" + }, + { + "name": "de", + "type": "bool" + }, + { + "name": "ss", + "type": "bool" + }, + { + "name": "vmx-movdr-exit", + "type": "bool" + }, + { + "name": "fma", + "type": "bool" + }, + { + "name": "lahf_lm", + "type": "bool" + }, + { + "name": "lapic", + "type": "child<kvm-apic>" + }, + { + "name": "tsc_adjust", + "type": "bool" + }, + { + "name": "svm_lock", + "type": "bool" + }, + { + "name": "vmcb_clean", + "type": "bool" + }, + { + "name": "nrip_save", + "type": "bool" + }, + { + "name": "lbr_fmt", + "type": "uint64" + }, + { + "name": "pclmuldq", + "type": "bool" + }, + { + "name": "ffxsr", + "type": "bool" + }, + { + "name": "sse4-2", + "type": "bool" + }, + { + "name": "kvm_asyncpf_int", + "type": "bool" + }, + { + "name": "cmp_legacy", + "type": "bool" + }, + { + "name": "kvm_nopiodelay", + "type": "bool" + }, + { + "name": "perfctr_core", + "type": "bool" + }, + { + "name": "kvm_pv_unhalt", + "type": "bool" + }, + { + "name": "ds_cpl", + "type": "bool" + }, + { + "name": "sse4-1", + "type": "bool" + }, + { + "name": "perfctr_nb", + "type": "bool" + }, + { + "name": "sse3", + "type": "bool" + }, + { + "name": "tsc_scale", + "type": "bool" + }, + { + "name": "pause_filter", + "type": "bool" + }, + { + "name": "kvm_asyncpf", + "type": "bool" + }, + { + "name": "kvm_steal_time", + "type": "bool" + }, + { + "name": "feature-words", + "type": "X86CPUFeatureWordInfo" + }, + { + "name": "kvm_mmu", + "type": "bool" + }, + { + "name": "filtered-features", + "type": "X86CPUFeatureWordInfo" + }, + { + "name": "sse4_2", + "type": "bool" + }, + { + "name": "kvm_poll_control", + "type": "bool" + }, + { + "name": "fxsr_opt", + "type": "bool" + }, + { + "name": "nodeid_msr", + "type": "bool" + }, + { + "name": "kvm_pv_eoi", + "type": "bool" + }, + { + "name": "i64", + "type": "bool" + }, + { + "name": "hv-apicv", + "type": "bool" + }, + { + "name": "xd", + "type": "bool" + }, + { + "name": "sse4_1", + "type": "bool" + } + ], + "id": "libvirt-1" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "realized" + }, + "id": "libvirt-2" +} + +{ + "return": true, + "id": "libvirt-2" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "hotplugged" + }, + "id": "libvirt-3" +} + +{ + "return": false, + "id": "libvirt-3" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "hotpluggable" + }, + "id": "libvirt-4" +} + +{ + "return": true, + "id": "libvirt-4" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "start-powered-off" + }, + "id": "libvirt-5" +} + +{ + "return": false, + "id": "libvirt-5" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-invept-single-context" + }, + "id": "libvirt-6" +} + +{ + "return": false, + "id": "libvirt-6" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "core-capability" + }, + "id": "libvirt-7" +} + +{ + "return": false, + "id": "libvirt-7" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "popcnt" + }, + "id": "libvirt-8" +} + +{ + "return": true, + "id": "libvirt-8" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "sgx-debug" + }, + "id": "libvirt-9" +} + +{ + "return": false, + "id": "libvirt-9" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "kvm-poll-control" + }, + "id": "libvirt-10" +} + +{ + "return": false, + "id": "libvirt-10" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "dtes64" + }, + "id": "libvirt-11" +} + +{ + "return": false, + "id": "libvirt-11" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-invvpid-single-addr" + }, + "id": "libvirt-12" +} + +{ + "return": false, + "id": "libvirt-12" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "xstore" + }, + "id": "libvirt-13" +} + +{ + "return": false, + "id": "libvirt-13" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "x-vendor-cpuid-only-v2" + }, + "id": "libvirt-14" +} + +{ + "return": false, + "id": "libvirt-14" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "sm4" + }, + "id": "libvirt-15" +} + +{ + "return": false, + "id": "libvirt-15" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "hv-emsr-bitmap" + }, + "id": "libvirt-16" +} + +{ + "return": false, + "id": "libvirt-16" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "pse36" + }, + "id": "libvirt-17" +} + +{ + "return": true, + "id": "libvirt-17" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "avx512-4vnniw" + }, + "id": "libvirt-18" +} + +{ + "return": false, + "id": "libvirt-18" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "x-intel-pt-auto-level" + }, + "id": "libvirt-19" +} + +{ + "return": true, + "id": "libvirt-19" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "fma4" + }, + "id": "libvirt-20" +} + +{ + "return": false, + "id": "libvirt-20" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "avx512-vp2intersect" + }, + "id": "libvirt-21" +} + +{ + "return": false, + "id": "libvirt-21" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "avx2" + }, + "id": "libvirt-22" +} + +{ + "return": true, + "id": "libvirt-22" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "amd-psfd" + }, + "id": "libvirt-23" +} + +{ + "return": false, + "id": "libvirt-23" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "amd-stibp" + }, + "id": "libvirt-24" +} + +{ + "return": false, + "id": "libvirt-24" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "sgxlc" + }, + "id": "libvirt-25" +} + +{ + "return": false, + "id": "libvirt-25" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "sm3" + }, + "id": "libvirt-26" +} + +{ + "return": false, + "id": "libvirt-26" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-ept-advanced-exitinfo" + }, + "id": "libvirt-27" +} + +{ + "return": false, + "id": "libvirt-27" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-store-lma" + }, + "id": "libvirt-28" +} + +{ + "return": false, + "id": "libvirt-28" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "msr-imm" + }, + "id": "libvirt-29" +} + +{ + "return": false, + "id": "libvirt-29" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmware-cpuid-freq" + }, + "id": "libvirt-30" +} + +{ + "return": true, + "id": "libvirt-30" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "x-force-cpuid-0x1f" + }, + "id": "libvirt-31" +} + +{ + "return": false, + "id": "libvirt-31" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "ddpd-u" + }, + "id": "libvirt-32" +} + +{ + "return": false, + "id": "libvirt-32" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-nested-exception" + }, + "id": "libvirt-33" +} + +{ + "return": false, + "id": "libvirt-33" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-entry-noload-debugctl" + }, + "id": "libvirt-34" +} + +{ + "return": false, + "id": "libvirt-34" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "bhi-no" + }, + "id": "libvirt-35" +} + +{ + "return": false, + "id": "libvirt-35" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "amx-fp16" + }, + "id": "libvirt-36" +} + +{ + "return": false, + "id": "libvirt-36" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "erms" + }, + "id": "libvirt-37" +} + +{ + "return": true, + "id": "libvirt-37" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vaes" + }, + "id": "libvirt-38" +} + +{ + "return": true, + "id": "libvirt-38" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-eptad" + }, + "id": "libvirt-39" +} + +{ + "return": false, + "id": "libvirt-39" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-activity-wait-sipi" + }, + "id": "libvirt-40" +} + +{ + "return": false, + "id": "libvirt-40" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-flexpriority" + }, + "id": "libvirt-41" +} + +{ + "return": false, + "id": "libvirt-41" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "hv-reset" + }, + "id": "libvirt-42" +} + +{ + "return": false, + "id": "libvirt-42" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "rdrand" + }, + "id": "libvirt-43" +} + +{ + "return": true, + "id": "libvirt-43" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "lam" + }, + "id": "libvirt-44" +} + +{ + "return": false, + "id": "libvirt-44" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-pause-exit" + }, + "id": "libvirt-45" +} + +{ + "return": false, + "id": "libvirt-45" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-shadow-vmcs" + }, + "id": "libvirt-46" +} + +{ + "return": false, + "id": "libvirt-46" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "avx512-vpopcntdq" + }, + "id": "libvirt-47" +} + +{ + "return": false, + "id": "libvirt-47" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "xcrypt" + }, + "id": "libvirt-48" +} + +{ + "return": false, + "id": "libvirt-48" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "tbm" + }, + "id": "libvirt-49" +} + +{ + "return": false, + "id": "libvirt-49" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "movdiri" + }, + "id": "libvirt-50" +} + +{ + "return": false, + "id": "libvirt-50" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-monitor-exit" + }, + "id": "libvirt-51" +} + +{ + "return": false, + "id": "libvirt-51" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "kvm-pv-eoi" + }, + "id": "libvirt-52" +} + +{ + "return": true, + "id": "libvirt-52" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "lm" + }, + "id": "libvirt-53" +} + +{ + "return": true, + "id": "libvirt-53" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "x-vendor-cpuid-only" + }, + "id": "libvirt-54" +} + +{ + "return": true, + "id": "libvirt-54" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "pbrsb-no" + }, + "id": "libvirt-55" +} + +{ + "return": false, + "id": "libvirt-55" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-unrestricted-guest" + }, + "id": "libvirt-56" +} + +{ + "return": false, + "id": "libvirt-56" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "pae" + }, + "id": "libvirt-57" +} + +{ + "return": true, + "id": "libvirt-57" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "ssse3" + }, + "id": "libvirt-58" +} + +{ + "return": true, + "id": "libvirt-58" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "hv-runtime" + }, + "id": "libvirt-59" +} + +{ + "return": false, + "id": "libvirt-59" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "phe" + }, + "id": "libvirt-60" +} + +{ + "return": false, + "id": "libvirt-60" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "host-phys-bits" + }, + "id": "libvirt-61" +} + +{ + "return": false, + "id": "libvirt-61" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "taa-no" + }, + "id": "libvirt-62" +} + +{ + "return": false, + "id": "libvirt-62" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "sgx-aex-notify" + }, + "id": "libvirt-63" +} + +{ + "return": false, + "id": "libvirt-63" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "full-width-write" + }, + "id": "libvirt-64" +} + +{ + "return": false, + "id": "libvirt-64" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "arat" + }, + "id": "libvirt-65" +} + +{ + "return": true, + "id": "libvirt-65" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "avx512vbmi2" + }, + "id": "libvirt-66" +} + +{ + "return": false, + "id": "libvirt-66" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "sha512" + }, + "id": "libvirt-67" +} + +{ + "return": false, + "id": "libvirt-67" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "arch-lbr" + }, + "id": "libvirt-68" +} + +{ + "return": false, + "id": "libvirt-68" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-vnmi-pending" + }, + "id": "libvirt-69" +} + +{ + "return": false, + "id": "libvirt-69" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-any-errcode" + }, + "id": "libvirt-70" +} + +{ + "return": false, + "id": "libvirt-70" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "x2apic" + }, + "id": "libvirt-71" +} + +{ + "return": true, + "id": "libvirt-71" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "npt" + }, + "id": "libvirt-72" +} + +{ + "return": false, + "id": "libvirt-72" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "pmm-en" + }, + "id": "libvirt-73" +} + +{ + "return": false, + "id": "libvirt-73" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-invpcid-exit" + }, + "id": "libvirt-74" +} + +{ + "return": false, + "id": "libvirt-74" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "avx512ifma" + }, + "id": "libvirt-75" +} + +{ + "return": false, + "id": "libvirt-75" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "ibpb-brtype" + }, + "id": "libvirt-76" +} + +{ + "return": false, + "id": "libvirt-76" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "hv-evmcs" + }, + "id": "libvirt-77" +} + +{ + "return": false, + "id": "libvirt-77" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "srso-user-kernel-no" + }, + "id": "libvirt-78" +} + +{ + "return": false, + "id": "libvirt-78" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-io-exit" + }, + "id": "libvirt-79" +} + +{ + "return": false, + "id": "libvirt-79" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "tsc" + }, + "id": "libvirt-80" +} + +{ + "return": true, + "id": "libvirt-80" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "x-force-features" + }, + "id": "libvirt-81" +} + +{ + "return": false, + "id": "libvirt-81" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-ins-outs" + }, + "id": "libvirt-82" +} + +{ + "return": false, + "id": "libvirt-82" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "dca" + }, + "id": "libvirt-83" +} + +{ + "return": false, + "id": "libvirt-83" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-apicv-x2apic" + }, + "id": "libvirt-84" +} + +{ + "return": false, + "id": "libvirt-84" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "perfctr-core" + }, + "id": "libvirt-85" +} + +{ + "return": false, + "id": "libvirt-85" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "ia64" + }, + "id": "libvirt-86" +} + +{ + "return": false, + "id": "libvirt-86" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "fdp-excptn-only" + }, + "id": "libvirt-87" +} + +{ + "return": false, + "id": "libvirt-87" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "hv-stimer-direct" + }, + "id": "libvirt-88" +} + +{ + "return": false, + "id": "libvirt-88" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "gds-no" + }, + "id": "libvirt-89" +} + +{ + "return": false, + "id": "libvirt-89" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-exit-secondary-ctls" + }, + "id": "libvirt-90" +} + +{ + "return": false, + "id": "libvirt-90" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-cr3-load-noexit" + }, + "id": "libvirt-91" +} + +{ + "return": false, + "id": "libvirt-91" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "rfds-no" + }, + "id": "libvirt-92" +} + +{ + "return": false, + "id": "libvirt-92" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "pmu" + }, + "id": "libvirt-93" +} + +{ + "return": false, + "id": "libvirt-93" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-entry-load-rtit-ctl" + }, + "id": "libvirt-94" +} + +{ + "return": false, + "id": "libvirt-94" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "kvmclock" + }, + "id": "libvirt-95" +} + +{ + "return": true, + "id": "libvirt-95" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "avx10" + }, + "id": "libvirt-96" +} + +{ + "return": false, + "id": "libvirt-96" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-invept-single-context-noglobals" + }, + "id": "libvirt-97" +} + +{ + "return": false, + "id": "libvirt-97" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "xen-vapic" + }, + "id": "libvirt-98" +} + +{ + "return": false, + "id": "libvirt-98" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "md-clear" + }, + "id": "libvirt-99" +} + +{ + "return": false, + "id": "libvirt-99" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "invtsc" + }, + "id": "libvirt-100" +} + +{ + "return": false, + "id": "libvirt-100" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "pn" + }, + "id": "libvirt-101" +} + +{ + "return": false, + "id": "libvirt-101" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "avx512cd" + }, + "id": "libvirt-102" +} + +{ + "return": false, + "id": "libvirt-102" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "cmp-legacy" + }, + "id": "libvirt-103" +} + +{ + "return": false, + "id": "libvirt-103" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "cx16" + }, + "id": "libvirt-104" +} + +{ + "return": true, + "id": "libvirt-104" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "avx512dq" + }, + "id": "libvirt-105" +} + +{ + "return": false, + "id": "libvirt-105" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "abm" + }, + "id": "libvirt-106" +} + +{ + "return": true, + "id": "libvirt-106" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-activity-shutdown" + }, + "id": "libvirt-107" +} + +{ + "return": false, + "id": "libvirt-107" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "auto-ibrs" + }, + "id": "libvirt-108" +} + +{ + "return": false, + "id": "libvirt-108" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "kvm-pv-ipi" + }, + "id": "libvirt-109" +} + +{ + "return": false, + "id": "libvirt-109" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "avx10-128" + }, + "id": "libvirt-110" +} + +{ + "return": false, + "id": "libvirt-110" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-apicv-register" + }, + "id": "libvirt-111" +} + +{ + "return": false, + "id": "libvirt-111" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "fxsr-opt" + }, + "id": "libvirt-112" +} + +{ + "return": false, + "id": "libvirt-112" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "skip-l1dfl-vmentry" + }, + "id": "libvirt-113" +} + +{ + "return": true, + "id": "libvirt-113" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "fill-mtrr-mask" + }, + "id": "libvirt-114" +} + +{ + "return": true, + "id": "libvirt-114" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "x-migrate-smi-count" + }, + "id": "libvirt-115" +} + +{ + "return": true, + "id": "libvirt-115" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "wbnoinvd" + }, + "id": "libvirt-116" +} + +{ + "return": false, + "id": "libvirt-116" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "sgx1" + }, + "id": "libvirt-117" +} + +{ + "return": false, + "id": "libvirt-117" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "rdpid" + }, + "id": "libvirt-118" +} + +{ + "return": true, + "id": "libvirt-118" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "pcid" + }, + "id": "libvirt-119" +} + +{ + "return": true, + "id": "libvirt-119" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "bhi-ctrl" + }, + "id": "libvirt-120" +} + +{ + "return": false, + "id": "libvirt-120" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "syscall" + }, + "id": "libvirt-121" +} + +{ + "return": true, + "id": "libvirt-121" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "pse" + }, + "id": "libvirt-122" +} + +{ + "return": true, + "id": "libvirt-122" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "rrsba-ctrl" + }, + "id": "libvirt-123" +} + +{ + "return": false, + "id": "libvirt-123" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "avx-ne-convert" + }, + "id": "libvirt-124" +} + +{ + "return": false, + "id": "libvirt-124" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "xsaves" + }, + "id": "libvirt-125" +} + +{ + "return": true, + "id": "libvirt-125" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-entry-load-pat" + }, + "id": "libvirt-126" +} + +{ + "return": false, + "id": "libvirt-126" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vgif" + }, + "id": "libvirt-127" +} + +{ + "return": false, + "id": "libvirt-127" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "mce" + }, + "id": "libvirt-128" +} + +{ + "return": true, + "id": "libvirt-128" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "xfd" + }, + "id": "libvirt-129" +} + +{ + "return": false, + "id": "libvirt-129" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "sgx-tokenkey" + }, + "id": "libvirt-130" +} + +{ + "return": false, + "id": "libvirt-130" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "ibpb" + }, + "id": "libvirt-131" +} + +{ + "return": false, + "id": "libvirt-131" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "x-amd-topoext-features-only" + }, + "id": "libvirt-132" +} + +{ + "return": true, + "id": "libvirt-132" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-apicv-xapic" + }, + "id": "libvirt-133" +} + +{ + "return": false, + "id": "libvirt-133" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-hlt-exit" + }, + "id": "libvirt-134" +} + +{ + "return": false, + "id": "libvirt-134" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "lwp" + }, + "id": "libvirt-135" +} + +{ + "return": false, + "id": "libvirt-135" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "eraps" + }, + "id": "libvirt-136" +} + +{ + "return": false, + "id": "libvirt-136" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "cldemote" + }, + "id": "libvirt-137" +} + +{ + "return": false, + "id": "libvirt-137" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-exit-load-pkrs" + }, + "id": "libvirt-138" +} + +{ + "return": false, + "id": "libvirt-138" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "rtm" + }, + "id": "libvirt-139" +} + +{ + "return": false, + "id": "libvirt-139" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "hv-tlbflush" + }, + "id": "libvirt-140" +} + +{ + "return": false, + "id": "libvirt-140" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "kvm-steal-time" + }, + "id": "libvirt-141" +} + +{ + "return": true, + "id": "libvirt-141" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "cpuid-0xb" + }, + "id": "libvirt-142" +} + +{ + "return": true, + "id": "libvirt-142" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "fsrs" + }, + "id": "libvirt-143" +} + +{ + "return": true, + "id": "libvirt-143" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "sgx-provisionkey" + }, + "id": "libvirt-144" +} + +{ + "return": false, + "id": "libvirt-144" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-eptp-switching" + }, + "id": "libvirt-145" +} + +{ + "return": false, + "id": "libvirt-145" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-invlpg-exit" + }, + "id": "libvirt-146" +} + +{ + "return": false, + "id": "libvirt-146" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-entry-load-efer" + }, + "id": "libvirt-147" +} + +{ + "return": false, + "id": "libvirt-147" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-exit-save-efer" + }, + "id": "libvirt-148" +} + +{ + "return": false, + "id": "libvirt-148" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "x-l1-cache-per-thread" + }, + "id": "libvirt-149" +} + +{ + "return": true, + "id": "libvirt-149" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vme" + }, + "id": "libvirt-150" +} + +{ + "return": true, + "id": "libvirt-150" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "kvm-pv-unhalt" + }, + "id": "libvirt-151" +} + +{ + "return": false, + "id": "libvirt-151" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-desc-exit" + }, + "id": "libvirt-152" +} + +{ + "return": false, + "id": "libvirt-152" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "sgx-kss" + }, + "id": "libvirt-153" +} + +{ + "return": false, + "id": "libvirt-153" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-invvpid" + }, + "id": "libvirt-154" +} + +{ + "return": false, + "id": "libvirt-154" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-entry-ia32e-mode" + }, + "id": "libvirt-155" +} + +{ + "return": false, + "id": "libvirt-155" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "svm" + }, + "id": "libvirt-156" +} + +{ + "return": false, + "id": "libvirt-156" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "kvm-hint-dedicated" + }, + "id": "libvirt-157" +} + +{ + "return": false, + "id": "libvirt-157" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-ept-execonly" + }, + "id": "libvirt-158" +} + +{ + "return": false, + "id": "libvirt-158" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "avx-ifma" + }, + "id": "libvirt-159" +} + +{ + "return": false, + "id": "libvirt-159" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "mca" + }, + "id": "libvirt-160" +} + +{ + "return": true, + "id": "libvirt-160" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-tsc-scaling" + }, + "id": "libvirt-161" +} + +{ + "return": false, + "id": "libvirt-161" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "mtrr" + }, + "id": "libvirt-162" +} + +{ + "return": true, + "id": "libvirt-162" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "cid" + }, + "id": "libvirt-163" +} + +{ + "return": false, + "id": "libvirt-163" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "pfthreshold" + }, + "id": "libvirt-164" +} + +{ + "return": false, + "id": "libvirt-164" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "pmm" + }, + "id": "libvirt-165" +} + +{ + "return": false, + "id": "libvirt-165" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "lahf-lm" + }, + "id": "libvirt-166" +} + +{ + "return": true, + "id": "libvirt-166" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "zero-fcs-fds" + }, + "id": "libvirt-167" +} + +{ + "return": false, + "id": "libvirt-167" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-entry-load-pkrs" + }, + "id": "libvirt-168" +} + +{ + "return": false, + "id": "libvirt-168" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "tcg-cpuid" + }, + "id": "libvirt-169" +} + +{ + "return": true, + "id": "libvirt-169" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "no-nested-data-bp" + }, + "id": "libvirt-170" +} + +{ + "return": false, + "id": "libvirt-170" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "legacy-multi-node" + }, + "id": "libvirt-171" +} + +{ + "return": false, + "id": "libvirt-171" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "tm" + }, + "id": "libvirt-172" +} + +{ + "return": false, + "id": "libvirt-172" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "pbe" + }, + "id": "libvirt-173" +} + +{ + "return": false, + "id": "libvirt-173" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "amx-int8" + }, + "id": "libvirt-174" +} + +{ + "return": false, + "id": "libvirt-174" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-rdpmc-exit" + }, + "id": "libvirt-175" +} + +{ + "return": false, + "id": "libvirt-175" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "intel-psfd" + }, + "id": "libvirt-176" +} + +{ + "return": false, + "id": "libvirt-176" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "fs-gs-base-ns" + }, + "id": "libvirt-177" +} + +{ + "return": false, + "id": "libvirt-177" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "split-lock-detect" + }, + "id": "libvirt-178" +} + +{ + "return": false, + "id": "libvirt-178" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "fpu" + }, + "id": "libvirt-179" +} + +{ + "return": true, + "id": "libvirt-179" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "skinit" + }, + "id": "libvirt-180" +} + +{ + "return": false, + "id": "libvirt-180" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "l3-cache" + }, + "id": "libvirt-181" +} + +{ + "return": true, + "id": "libvirt-181" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "sep" + }, + "id": "libvirt-182" +} + +{ + "return": true, + "id": "libvirt-182" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-exit-load-pat" + }, + "id": "libvirt-183" +} + +{ + "return": false, + "id": "libvirt-183" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "intel-pt-lip" + }, + "id": "libvirt-184" +} + +{ + "return": false, + "id": "libvirt-184" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "avx10-512" + }, + "id": "libvirt-185" +} + +{ + "return": false, + "id": "libvirt-185" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "hv-tlbflush-direct" + }, + "id": "libvirt-186" +} + +{ + "return": false, + "id": "libvirt-186" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "avx512-bf16" + }, + "id": "libvirt-187" +} + +{ + "return": false, + "id": "libvirt-187" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "overflow-recov" + }, + "id": "libvirt-188" +} + +{ + "return": false, + "id": "libvirt-188" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-vnmi" + }, + "id": "libvirt-189" +} + +{ + "return": false, + "id": "libvirt-189" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-rdtscp-exit" + }, + "id": "libvirt-190" +} + +{ + "return": false, + "id": "libvirt-190" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "amx-complex" + }, + "id": "libvirt-191" +} + +{ + "return": false, + "id": "libvirt-191" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "nx" + }, + "id": "libvirt-192" +} + +{ + "return": true, + "id": "libvirt-192" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-invvpid-all-context" + }, + "id": "libvirt-193" +} + +{ + "return": false, + "id": "libvirt-193" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "avx-vnni-int8" + }, + "id": "libvirt-194" +} + +{ + "return": false, + "id": "libvirt-194" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-vmwrite-vmexit-fields" + }, + "id": "libvirt-195" +} + +{ + "return": false, + "id": "libvirt-195" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-page-walk-4" + }, + "id": "libvirt-196" +} + +{ + "return": false, + "id": "libvirt-196" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "rfds-clear" + }, + "id": "libvirt-197" +} + +{ + "return": false, + "id": "libvirt-197" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "pause-filter" + }, + "id": "libvirt-198" +} + +{ + "return": false, + "id": "libvirt-198" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "ds-cpl" + }, + "id": "libvirt-199" +} + +{ + "return": false, + "id": "libvirt-199" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "succor" + }, + "id": "libvirt-200" +} + +{ + "return": false, + "id": "libvirt-200" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "fred" + }, + "id": "libvirt-201" +} + +{ + "return": false, + "id": "libvirt-201" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "fsrm" + }, + "id": "libvirt-202" +} + +{ + "return": true, + "id": "libvirt-202" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-exit-load-efer" + }, + "id": "libvirt-203" +} + +{ + "return": false, + "id": "libvirt-203" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-mtf" + }, + "id": "libvirt-204" +} + +{ + "return": false, + "id": "libvirt-204" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-entry-load-fred" + }, + "id": "libvirt-205" +} + +{ + "return": false, + "id": "libvirt-205" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-ept" + }, + "id": "libvirt-206" +} + +{ + "return": false, + "id": "libvirt-206" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "fb-clear" + }, + "id": "libvirt-207" +} + +{ + "return": false, + "id": "libvirt-207" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "nodeid-msr" + }, + "id": "libvirt-208" +} + +{ + "return": false, + "id": "libvirt-208" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-exit-clear-bndcfgs" + }, + "id": "libvirt-209" +} + +{ + "return": false, + "id": "libvirt-209" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "smap" + }, + "id": "libvirt-210" +} + +{ + "return": true, + "id": "libvirt-210" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-io-bitmap" + }, + "id": "libvirt-211" +} + +{ + "return": false, + "id": "libvirt-211" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-preemption-timer" + }, + "id": "libvirt-212" +} + +{ + "return": false, + "id": "libvirt-212" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-invept-all-context" + }, + "id": "libvirt-213" +} + +{ + "return": false, + "id": "libvirt-213" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-intr-exit" + }, + "id": "libvirt-214" +} + +{ + "return": false, + "id": "libvirt-214" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "prefetchiti" + }, + "id": "libvirt-215" +} + +{ + "return": false, + "id": "libvirt-215" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "psdp-no" + }, + "id": "libvirt-216" +} + +{ + "return": true, + "id": "libvirt-216" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "cr8legacy" + }, + "id": "libvirt-217" +} + +{ + "return": false, + "id": "libvirt-217" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-vpid" + }, + "id": "libvirt-218" +} + +{ + "return": false, + "id": "libvirt-218" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-zero-len-inject" + }, + "id": "libvirt-219" +} + +{ + "return": false, + "id": "libvirt-219" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "pschange-mc-no" + }, + "id": "libvirt-220" +} + +{ + "return": true, + "id": "libvirt-220" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "virt-ssbd" + }, + "id": "libvirt-221" +} + +{ + "return": false, + "id": "libvirt-221" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "umip" + }, + "id": "libvirt-222" +} + +{ + "return": true, + "id": "libvirt-222" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "avx512er" + }, + "id": "libvirt-223" +} + +{ + "return": false, + "id": "libvirt-223" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-vintr-pending" + }, + "id": "libvirt-224" +} + +{ + "return": false, + "id": "libvirt-224" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "xstore-en" + }, + "id": "libvirt-225" +} + +{ + "return": false, + "id": "libvirt-225" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "avx512vl" + }, + "id": "libvirt-226" +} + +{ + "return": false, + "id": "libvirt-226" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "ibrs" + }, + "id": "libvirt-227" +} + +{ + "return": false, + "id": "libvirt-227" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "rsba" + }, + "id": "libvirt-228" +} + +{ + "return": false, + "id": "libvirt-228" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "cmov" + }, + "id": "libvirt-229" +} + +{ + "return": true, + "id": "libvirt-229" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-posted-intr" + }, + "id": "libvirt-230" +} + +{ + "return": false, + "id": "libvirt-230" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "xcrypt-en" + }, + "id": "libvirt-231" +} + +{ + "return": false, + "id": "libvirt-231" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "tm2" + }, + "id": "libvirt-232" +} + +{ + "return": false, + "id": "libvirt-232" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "lbrv" + }, + "id": "libvirt-233" +} + +{ + "return": false, + "id": "libvirt-233" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "tsc-scale" + }, + "id": "libvirt-234" +} + +{ + "return": false, + "id": "libvirt-234" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-secondary-ctls" + }, + "id": "libvirt-235" +} + +{ + "return": false, + "id": "libvirt-235" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "xsaveerptr" + }, + "id": "libvirt-236" +} + +{ + "return": false, + "id": "libvirt-236" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "fsgsbase" + }, + "id": "libvirt-237" +} + +{ + "return": true, + "id": "libvirt-237" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "x-hv-synic-kvm-only" + }, + "id": "libvirt-238" +} + +{ + "return": false, + "id": "libvirt-238" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "avx512bw" + }, + "id": "libvirt-239" +} + +{ + "return": false, + "id": "libvirt-239" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "tce" + }, + "id": "libvirt-240" +} + +{ + "return": false, + "id": "libvirt-240" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "smx" + }, + "id": "libvirt-241" +} + +{ + "return": false, + "id": "libvirt-241" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "hle" + }, + "id": "libvirt-242" +} + +{ + "return": false, + "id": "libvirt-242" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "monitor" + }, + "id": "libvirt-243" +} + +{ + "return": false, + "id": "libvirt-243" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "avx512-fp16" + }, + "id": "libvirt-244" +} + +{ + "return": false, + "id": "libvirt-244" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "sse4a" + }, + "id": "libvirt-245" +} + +{ + "return": false, + "id": "libvirt-245" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vpclmulqdq" + }, + "id": "libvirt-246" +} + +{ + "return": true, + "id": "libvirt-246" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "hv-frequencies" + }, + "id": "libvirt-247" +} + +{ + "return": false, + "id": "libvirt-247" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "kvm-pv-tlb-flush" + }, + "id": "libvirt-248" +} + +{ + "return": false, + "id": "libvirt-248" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-rdtsc-exit" + }, + "id": "libvirt-249" +} + +{ + "return": false, + "id": "libvirt-249" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-activity-hlt" + }, + "id": "libvirt-250" +} + +{ + "return": false, + "id": "libvirt-250" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-entry-load-bndcfgs" + }, + "id": "libvirt-251" +} + +{ + "return": false, + "id": "libvirt-251" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "sgx-edeccssa" + }, + "id": "libvirt-252" +} + +{ + "return": false, + "id": "libvirt-252" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "xsavec" + }, + "id": "libvirt-253" +} + +{ + "return": true, + "id": "libvirt-253" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-cr8-load-exit" + }, + "id": "libvirt-254" +} + +{ + "return": false, + "id": "libvirt-254" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "mds-no" + }, + "id": "libvirt-255" +} + +{ + "return": true, + "id": "libvirt-255" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "svme-addr-chk" + }, + "id": "libvirt-256" +} + +{ + "return": false, + "id": "libvirt-256" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "amd-no-ssb" + }, + "id": "libvirt-257" +} + +{ + "return": false, + "id": "libvirt-257" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "xop" + }, + "id": "libvirt-258" +} + +{ + "return": false, + "id": "libvirt-258" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "adx" + }, + "id": "libvirt-259" +} + +{ + "return": true, + "id": "libvirt-259" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "perfmon-v2" + }, + "id": "libvirt-260" +} + +{ + "return": false, + "id": "libvirt-260" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "full-cpuid-auto-level" + }, + "id": "libvirt-261" +} + +{ + "return": true, + "id": "libvirt-261" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-exit-ack-intr" + }, + "id": "libvirt-262" +} + +{ + "return": false, + "id": "libvirt-262" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-rdseed-exit" + }, + "id": "libvirt-263" +} + +{ + "return": false, + "id": "libvirt-263" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "pclmulqdq" + }, + "id": "libvirt-264" +} + +{ + "return": true, + "id": "libvirt-264" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "msr" + }, + "id": "libvirt-265" +} + +{ + "return": true, + "id": "libvirt-265" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "wrmsrns" + }, + "id": "libvirt-266" +} + +{ + "return": false, + "id": "libvirt-266" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "kvm-pv-enforce-cpuid" + }, + "id": "libvirt-267" +} + +{ + "return": false, + "id": "libvirt-267" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "ssb-no" + }, + "id": "libvirt-268" +} + +{ + "return": false, + "id": "libvirt-268" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "clflush" + }, + "id": "libvirt-269" +} + +{ + "return": true, + "id": "libvirt-269" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "mpx" + }, + "id": "libvirt-270" +} + +{ + "return": false, + "id": "libvirt-270" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "extapic" + }, + "id": "libvirt-271" +} + +{ + "return": false, + "id": "libvirt-271" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "lfence-always-serializing" + }, + "id": "libvirt-272" +} + +{ + "return": false, + "id": "libvirt-272" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "hv-enforce-cpuid" + }, + "id": "libvirt-273" +} + +{ + "return": false, + "id": "libvirt-273" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "hv-stimer" + }, + "id": "libvirt-274" +} + +{ + "return": false, + "id": "libvirt-274" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "sgx2" + }, + "id": "libvirt-275" +} + +{ + "return": false, + "id": "libvirt-275" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "kvm-asyncpf-vmexit" + }, + "id": "libvirt-276" +} + +{ + "return": false, + "id": "libvirt-276" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "smep" + }, + "id": "libvirt-277" +} + +{ + "return": true, + "id": "libvirt-277" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vnmi" + }, + "id": "libvirt-278" +} + +{ + "return": false, + "id": "libvirt-278" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-mwait-exit" + }, + "id": "libvirt-279" +} + +{ + "return": false, + "id": "libvirt-279" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "hv-synic" + }, + "id": "libvirt-280" +} + +{ + "return": false, + "id": "libvirt-280" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "cx8" + }, + "id": "libvirt-281" +} + +{ + "return": true, + "id": "libvirt-281" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmcb-clean" + }, + "id": "libvirt-282" +} + +{ + "return": false, + "id": "libvirt-282" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "pku" + }, + "id": "libvirt-283" +} + +{ + "return": true, + "id": "libvirt-283" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "kvm" + }, + "id": "libvirt-284" +} + +{ + "return": true, + "id": "libvirt-284" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "srso-no" + }, + "id": "libvirt-285" +} + +{ + "return": false, + "id": "libvirt-285" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "hv-passthrough" + }, + "id": "libvirt-286" +} + +{ + "return": false, + "id": "libvirt-286" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "lkgs" + }, + "id": "libvirt-287" +} + +{ + "return": false, + "id": "libvirt-287" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "tsx-ldtrk" + }, + "id": "libvirt-288" +} + +{ + "return": false, + "id": "libvirt-288" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "hv-tlbflush-ext" + }, + "id": "libvirt-289" +} + +{ + "return": false, + "id": "libvirt-289" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "stibp" + }, + "id": "libvirt-290" +} + +{ + "return": false, + "id": "libvirt-290" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-cr3-store-noexit" + }, + "id": "libvirt-291" +} + +{ + "return": false, + "id": "libvirt-291" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "tsx-ctrl" + }, + "id": "libvirt-292" +} + +{ + "return": false, + "id": "libvirt-292" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "clzero" + }, + "id": "libvirt-293" +} + +{ + "return": false, + "id": "libvirt-293" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "svm-lock" + }, + "id": "libvirt-294" +} + +{ + "return": false, + "id": "libvirt-294" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "hv-reenlightenment" + }, + "id": "libvirt-295" +} + +{ + "return": false, + "id": "libvirt-295" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "x-consistent-cache" + }, + "id": "libvirt-296" +} + +{ + "return": false, + "id": "libvirt-296" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "avic" + }, + "id": "libvirt-297" +} + +{ + "return": false, + "id": "libvirt-297" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "hv-vpindex" + }, + "id": "libvirt-298" +} + +{ + "return": false, + "id": "libvirt-298" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "osvw" + }, + "id": "libvirt-299" +} + +{ + "return": false, + "id": "libvirt-299" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "sgx-exinfo" + }, + "id": "libvirt-300" +} + +{ + "return": false, + "id": "libvirt-300" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "legacy-cache" + }, + "id": "libvirt-301" +} + +{ + "return": true, + "id": "libvirt-301" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "sse" + }, + "id": "libvirt-302" +} + +{ + "return": true, + "id": "libvirt-302" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "fsrc" + }, + "id": "libvirt-303" +} + +{ + "return": false, + "id": "libvirt-303" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "ds" + }, + "id": "libvirt-304" +} + +{ + "return": false, + "id": "libvirt-304" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "pks" + }, + "id": "libvirt-305" +} + +{ + "return": false, + "id": "libvirt-305" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-ept-2mb" + }, + "id": "libvirt-306" +} + +{ + "return": false, + "id": "libvirt-306" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-true-ctls" + }, + "id": "libvirt-307" +} + +{ + "return": false, + "id": "libvirt-307" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "movdir64b" + }, + "id": "libvirt-308" +} + +{ + "return": false, + "id": "libvirt-308" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-ept-1gb" + }, + "id": "libvirt-309" +} + +{ + "return": false, + "id": "libvirt-309" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-invept" + }, + "id": "libvirt-310" +} + +{ + "return": false, + "id": "libvirt-310" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "ipred-ctrl" + }, + "id": "libvirt-311" +} + +{ + "return": false, + "id": "libvirt-311" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-rdrand-exit" + }, + "id": "libvirt-312" +} + +{ + "return": false, + "id": "libvirt-312" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "acpi" + }, + "id": "libvirt-313" +} + +{ + "return": false, + "id": "libvirt-313" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-encls-exit" + }, + "id": "libvirt-314" +} + +{ + "return": false, + "id": "libvirt-314" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-cr8-store-exit" + }, + "id": "libvirt-315" +} + +{ + "return": false, + "id": "libvirt-315" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "sbdr-ssdp-no" + }, + "id": "libvirt-316" +} + +{ + "return": true, + "id": "libvirt-316" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "its-no" + }, + "id": "libvirt-317" +} + +{ + "return": false, + "id": "libvirt-317" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "kvm-mmu" + }, + "id": "libvirt-318" +} + +{ + "return": false, + "id": "libvirt-318" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "3dnowprefetch" + }, + "id": "libvirt-319" +} + +{ + "return": true, + "id": "libvirt-319" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "nrip-save" + }, + "id": "libvirt-320" +} + +{ + "return": false, + "id": "libvirt-320" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "gfni" + }, + "id": "libvirt-321" +} + +{ + "return": true, + "id": "libvirt-321" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "flush-l1d" + }, + "id": "libvirt-322" +} + +{ + "return": false, + "id": "libvirt-322" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "kvm-msi-ext-dest-id" + }, + "id": "libvirt-323" +} + +{ + "return": false, + "id": "libvirt-323" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "fzrm" + }, + "id": "libvirt-324" +} + +{ + "return": false, + "id": "libvirt-324" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "serialize" + }, + "id": "libvirt-325" +} + +{ + "return": true, + "id": "libvirt-325" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "avx512bitalg" + }, + "id": "libvirt-326" +} + +{ + "return": false, + "id": "libvirt-326" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "rdseed" + }, + "id": "libvirt-327" +} + +{ + "return": true, + "id": "libvirt-327" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "sha-ni" + }, + "id": "libvirt-328" +} + +{ + "return": true, + "id": "libvirt-328" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "ace2" + }, + "id": "libvirt-329" +} + +{ + "return": false, + "id": "libvirt-329" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "lmce" + }, + "id": "libvirt-330" +} + +{ + "return": false, + "id": "libvirt-330" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "topoext" + }, + "id": "libvirt-331" +} + +{ + "return": false, + "id": "libvirt-331" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "f16c" + }, + "id": "libvirt-332" +} + +{ + "return": true, + "id": "libvirt-332" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "waitpkg" + }, + "id": "libvirt-333" +} + +{ + "return": false, + "id": "libvirt-333" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "avx512-4fmaps" + }, + "id": "libvirt-334" +} + +{ + "return": false, + "id": "libvirt-334" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "fbsdp-no" + }, + "id": "libvirt-335" +} + +{ + "return": true, + "id": "libvirt-335" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "avx" + }, + "id": "libvirt-336" +} + +{ + "return": true, + "id": "libvirt-336" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "sse2" + }, + "id": "libvirt-337" +} + +{ + "return": true, + "id": "libvirt-337" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "rdctl-no" + }, + "id": "libvirt-338" +} + +{ + "return": true, + "id": "libvirt-338" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "mmx" + }, + "id": "libvirt-339" +} + +{ + "return": true, + "id": "libvirt-339" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "avx512vnni" + }, + "id": "libvirt-340" +} + +{ + "return": false, + "id": "libvirt-340" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "pni" + }, + "id": "libvirt-341" +} + +{ + "return": true, + "id": "libvirt-341" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "movbe" + }, + "id": "libvirt-342" +} + +{ + "return": true, + "id": "libvirt-342" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-ple" + }, + "id": "libvirt-343" +} + +{ + "return": false, + "id": "libvirt-343" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "mmxext" + }, + "id": "libvirt-344" +} + +{ + "return": false, + "id": "libvirt-344" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "bus-lock-detect" + }, + "id": "libvirt-345" +} + +{ + "return": false, + "id": "libvirt-345" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-apicv-vid" + }, + "id": "libvirt-346" +} + +{ + "return": false, + "id": "libvirt-346" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-page-walk-5" + }, + "id": "libvirt-347" +} + +{ + "return": false, + "id": "libvirt-347" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "flushbyasid" + }, + "id": "libvirt-348" +} + +{ + "return": false, + "id": "libvirt-348" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "rdtscp" + }, + "id": "libvirt-349" +} + +{ + "return": true, + "id": "libvirt-349" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "clwb" + }, + "id": "libvirt-350" +} + +{ + "return": true, + "id": "libvirt-350" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "kvm-pv-sched-yield" + }, + "id": "libvirt-351" +} + +{ + "return": false, + "id": "libvirt-351" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "kvm-asyncpf" + }, + "id": "libvirt-352" +} + +{ + "return": true, + "id": "libvirt-352" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "avx-vnni-int16" + }, + "id": "libvirt-353" +} + +{ + "return": false, + "id": "libvirt-353" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "decodeassists" + }, + "id": "libvirt-354" +} + +{ + "return": false, + "id": "libvirt-354" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-wbinvd-exit" + }, + "id": "libvirt-355" +} + +{ + "return": false, + "id": "libvirt-355" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "pat" + }, + "id": "libvirt-356" +} + +{ + "return": true, + "id": "libvirt-356" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-exit-clear-rtit-ctl" + }, + "id": "libvirt-357" +} + +{ + "return": false, + "id": "libvirt-357" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "invpcid" + }, + "id": "libvirt-358" +} + +{ + "return": true, + "id": "libvirt-358" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "pdpe1gb" + }, + "id": "libvirt-359" +} + +{ + "return": true, + "id": "libvirt-359" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-exit-save-pat" + }, + "id": "libvirt-360" +} + +{ + "return": false, + "id": "libvirt-360" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "tsc-adjust" + }, + "id": "libvirt-361" +} + +{ + "return": false, + "id": "libvirt-361" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-enable-user-wait-pause" + }, + "id": "libvirt-362" +} + +{ + "return": false, + "id": "libvirt-362" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "ht" + }, + "id": "libvirt-363" +} + +{ + "return": false, + "id": "libvirt-363" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "amx-tile" + }, + "id": "libvirt-364" +} + +{ + "return": false, + "id": "libvirt-364" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "clflushopt" + }, + "id": "libvirt-365" +} + +{ + "return": true, + "id": "libvirt-365" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "hv-xmm-input" + }, + "id": "libvirt-366" +} + +{ + "return": false, + "id": "libvirt-366" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-tsc-offset" + }, + "id": "libvirt-367" +} + +{ + "return": false, + "id": "libvirt-367" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "ssbd" + }, + "id": "libvirt-368" +} + +{ + "return": true, + "id": "libvirt-368" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "3dnowext" + }, + "id": "libvirt-369" +} + +{ + "return": false, + "id": "libvirt-369" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "xtpr" + }, + "id": "libvirt-370" +} + +{ + "return": false, + "id": "libvirt-370" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "sgx" + }, + "id": "libvirt-371" +} + +{ + "return": false, + "id": "libvirt-371" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "hv-crash" + }, + "id": "libvirt-372" +} + +{ + "return": false, + "id": "libvirt-372" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "xsave" + }, + "id": "libvirt-373" +} + +{ + "return": true, + "id": "libvirt-373" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "pdcm" + }, + "id": "libvirt-374" +} + +{ + "return": false, + "id": "libvirt-374" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "est" + }, + "id": "libvirt-375" +} + +{ + "return": false, + "id": "libvirt-375" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "pge" + }, + "id": "libvirt-376" +} + +{ + "return": true, + "id": "libvirt-376" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "pcommit" + }, + "id": "libvirt-377" +} + +{ + "return": false, + "id": "libvirt-377" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "ibs" + }, + "id": "libvirt-378" +} + +{ + "return": false, + "id": "libvirt-378" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "tsc-deadline" + }, + "id": "libvirt-379" +} + +{ + "return": true, + "id": "libvirt-379" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "sgx-mode64" + }, + "id": "libvirt-380" +} + +{ + "return": false, + "id": "libvirt-380" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "kvmclock-stable-bit" + }, + "id": "libvirt-381" +} + +{ + "return": true, + "id": "libvirt-381" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "misalignsse" + }, + "id": "libvirt-382" +} + +{ + "return": false, + "id": "libvirt-382" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-msr-bitmap" + }, + "id": "libvirt-383" +} + +{ + "return": false, + "id": "libvirt-383" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "check" + }, + "id": "libvirt-384" +} + +{ + "return": true, + "id": "libvirt-384" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "hv-time" + }, + "id": "libvirt-385" +} + +{ + "return": false, + "id": "libvirt-385" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "perfctr-nb" + }, + "id": "libvirt-386" +} + +{ + "return": false, + "id": "libvirt-386" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "hv-avic" + }, + "id": "libvirt-387" +} + +{ + "return": false, + "id": "libvirt-387" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-vmfunc" + }, + "id": "libvirt-388" +} + +{ + "return": false, + "id": "libvirt-388" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "apic" + }, + "id": "libvirt-389" +} + +{ + "return": true, + "id": "libvirt-389" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-exit-save-preemption-timer" + }, + "id": "libvirt-390" +} + +{ + "return": false, + "id": "libvirt-390" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "prefetchi" + }, + "id": "libvirt-391" +} + +{ + "return": false, + "id": "libvirt-391" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-nmi-exit" + }, + "id": "libvirt-392" +} + +{ + "return": false, + "id": "libvirt-392" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "avx512vbmi" + }, + "id": "libvirt-393" +} + +{ + "return": false, + "id": "libvirt-393" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-exit-nosave-debugctl" + }, + "id": "libvirt-394" +} + +{ + "return": false, + "id": "libvirt-394" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "bmi2" + }, + "id": "libvirt-395" +} + +{ + "return": true, + "id": "libvirt-395" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-xsaves" + }, + "id": "libvirt-396" +} + +{ + "return": false, + "id": "libvirt-396" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "avx512f" + }, + "id": "libvirt-397" +} + +{ + "return": false, + "id": "libvirt-397" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "arch-capabilities" + }, + "id": "libvirt-398" +} + +{ + "return": true, + "id": "libvirt-398" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-exit-load-perf-global-ctrl" + }, + "id": "libvirt-399" +} + +{ + "return": false, + "id": "libvirt-399" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-pml" + }, + "id": "libvirt-400" +} + +{ + "return": false, + "id": "libvirt-400" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-entry-load-perf-global-ctrl" + }, + "id": "libvirt-401" +} + +{ + "return": false, + "id": "libvirt-401" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "ace2-en" + }, + "id": "libvirt-402" +} + +{ + "return": false, + "id": "libvirt-402" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "wdt" + }, + "id": "libvirt-403" +} + +{ + "return": false, + "id": "libvirt-403" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "intel-pt" + }, + "id": "libvirt-404" +} + +{ + "return": false, + "id": "libvirt-404" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "kvm-nopiodelay" + }, + "id": "libvirt-405" +} + +{ + "return": true, + "id": "libvirt-405" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "cmpccxadd" + }, + "id": "libvirt-406" +} + +{ + "return": false, + "id": "libvirt-406" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "v-vmsave-vmload" + }, + "id": "libvirt-407" +} + +{ + "return": false, + "id": "libvirt-407" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "avx512pf" + }, + "id": "libvirt-408" +} + +{ + "return": false, + "id": "libvirt-408" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "bmi1" + }, + "id": "libvirt-409" +} + +{ + "return": true, + "id": "libvirt-409" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "enforce" + }, + "id": "libvirt-410" +} + +{ + "return": false, + "id": "libvirt-410" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "sse4.2" + }, + "id": "libvirt-411" +} + +{ + "return": true, + "id": "libvirt-411" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "hv-syndbg" + }, + "id": "libvirt-412" +} + +{ + "return": false, + "id": "libvirt-412" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "ibrs-all" + }, + "id": "libvirt-413" +} + +{ + "return": true, + "id": "libvirt-413" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "xgetbv1" + }, + "id": "libvirt-414" +} + +{ + "return": true, + "id": "libvirt-414" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "mcdt-no" + }, + "id": "libvirt-415" +} + +{ + "return": false, + "id": "libvirt-415" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "spec-ctrl" + }, + "id": "libvirt-416" +} + +{ + "return": true, + "id": "libvirt-416" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "3dnow" + }, + "id": "libvirt-417" +} + +{ + "return": false, + "id": "libvirt-417" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "kvm-asyncpf-int" + }, + "id": "libvirt-418" +} + +{ + "return": false, + "id": "libvirt-418" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx" + }, + "id": "libvirt-419" +} + +{ + "return": false, + "id": "libvirt-419" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "la57" + }, + "id": "libvirt-420" +} + +{ + "return": false, + "id": "libvirt-420" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "amx-bf16" + }, + "id": "libvirt-421" +} + +{ + "return": false, + "id": "libvirt-421" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "sse4.1" + }, + "id": "libvirt-422" +} + +{ + "return": true, + "id": "libvirt-422" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "xsaveopt" + }, + "id": "libvirt-423" +} + +{ + "return": true, + "id": "libvirt-423" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "hv-relaxed" + }, + "id": "libvirt-424" +} + +{ + "return": false, + "id": "libvirt-424" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "stibp-always-on" + }, + "id": "libvirt-425" +} + +{ + "return": false, + "id": "libvirt-425" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "sbpb" + }, + "id": "libvirt-426" +} + +{ + "return": false, + "id": "libvirt-426" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "avx-vnni" + }, + "id": "libvirt-427" +} + +{ + "return": true, + "id": "libvirt-427" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "fxsr" + }, + "id": "libvirt-428" +} + +{ + "return": true, + "id": "libvirt-428" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "phe-en" + }, + "id": "libvirt-429" +} + +{ + "return": false, + "id": "libvirt-429" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "hv-vapic" + }, + "id": "libvirt-430" +} + +{ + "return": false, + "id": "libvirt-430" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "hv-ipi" + }, + "id": "libvirt-431" +} + +{ + "return": false, + "id": "libvirt-431" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "null-sel-clr-base" + }, + "id": "libvirt-432" +} + +{ + "return": false, + "id": "libvirt-432" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "hypervisor" + }, + "id": "libvirt-433" +} + +{ + "return": true, + "id": "libvirt-433" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "avx10-256" + }, + "id": "libvirt-434" +} + +{ + "return": false, + "id": "libvirt-434" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "aes" + }, + "id": "libvirt-435" +} + +{ + "return": true, + "id": "libvirt-435" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "amd-ssbd" + }, + "id": "libvirt-436" +} + +{ + "return": false, + "id": "libvirt-436" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "de" + }, + "id": "libvirt-437" +} + +{ + "return": true, + "id": "libvirt-437" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "ss" + }, + "id": "libvirt-438" +} + +{ + "return": false, + "id": "libvirt-438" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-movdr-exit" + }, + "id": "libvirt-439" +} + +{ + "return": false, + "id": "libvirt-439" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "fma" + }, + "id": "libvirt-440" +} + +{ + "return": true, + "id": "libvirt-440" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "lahf_lm" + }, + "id": "libvirt-441" +} + +{ + "return": true, + "id": "libvirt-441" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "tsc_adjust" + }, + "id": "libvirt-442" +} + +{ + "return": false, + "id": "libvirt-442" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "svm_lock" + }, + "id": "libvirt-443" +} + +{ + "return": false, + "id": "libvirt-443" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmcb_clean" + }, + "id": "libvirt-444" +} + +{ + "return": false, + "id": "libvirt-444" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "nrip_save" + }, + "id": "libvirt-445" +} + +{ + "return": false, + "id": "libvirt-445" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "pclmuldq" + }, + "id": "libvirt-446" +} + +{ + "return": true, + "id": "libvirt-446" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "ffxsr" + }, + "id": "libvirt-447" +} + +{ + "return": false, + "id": "libvirt-447" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "sse4-2" + }, + "id": "libvirt-448" +} + +{ + "return": true, + "id": "libvirt-448" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "kvm_asyncpf_int" + }, + "id": "libvirt-449" +} + +{ + "return": false, + "id": "libvirt-449" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "cmp_legacy" + }, + "id": "libvirt-450" +} + +{ + "return": false, + "id": "libvirt-450" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "kvm_nopiodelay" + }, + "id": "libvirt-451" +} + +{ + "return": true, + "id": "libvirt-451" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "perfctr_core" + }, + "id": "libvirt-452" +} + +{ + "return": false, + "id": "libvirt-452" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "kvm_pv_unhalt" + }, + "id": "libvirt-453" +} + +{ + "return": false, + "id": "libvirt-453" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "ds_cpl" + }, + "id": "libvirt-454" +} + +{ + "return": false, + "id": "libvirt-454" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "sse4-1" + }, + "id": "libvirt-455" +} + +{ + "return": true, + "id": "libvirt-455" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "perfctr_nb" + }, + "id": "libvirt-456" +} + +{ + "return": false, + "id": "libvirt-456" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "sse3" + }, + "id": "libvirt-457" +} + +{ + "return": true, + "id": "libvirt-457" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "tsc_scale" + }, + "id": "libvirt-458" +} + +{ + "return": false, + "id": "libvirt-458" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "pause_filter" + }, + "id": "libvirt-459" +} + +{ + "return": false, + "id": "libvirt-459" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "kvm_asyncpf" + }, + "id": "libvirt-460" +} + +{ + "return": true, + "id": "libvirt-460" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "kvm_steal_time" + }, + "id": "libvirt-461" +} + +{ + "return": true, + "id": "libvirt-461" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "kvm_mmu" + }, + "id": "libvirt-462" +} + +{ + "return": false, + "id": "libvirt-462" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "sse4_2" + }, + "id": "libvirt-463" +} + +{ + "return": true, + "id": "libvirt-463" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "kvm_poll_control" + }, + "id": "libvirt-464" +} + +{ + "return": false, + "id": "libvirt-464" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "fxsr_opt" + }, + "id": "libvirt-465" +} + +{ + "return": false, + "id": "libvirt-465" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "nodeid_msr" + }, + "id": "libvirt-466" +} + +{ + "return": false, + "id": "libvirt-466" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "kvm_pv_eoi" + }, + "id": "libvirt-467" +} + +{ + "return": true, + "id": "libvirt-467" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "i64" + }, + "id": "libvirt-468" +} + +{ + "return": true, + "id": "libvirt-468" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "hv-apicv" + }, + "id": "libvirt-469" +} + +{ + "return": false, + "id": "libvirt-469" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "xd" + }, + "id": "libvirt-470" +} + +{ + "return": true, + "id": "libvirt-470" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "sse4_1" + }, + "id": "libvirt-471" +} + +{ + "return": true, + "id": "libvirt-471" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "unavailable-features" + }, + "id": "libvirt-472" +} + +{ + "return": [ + "bus-lock-detect", + "cmpccxadd", + "avx-ifma", + "wbnoinvd", + "pbrsb-no", + "avx-vnni-int8", + "avx-ne-convert", + "mcdt-no" + ], + "id": "libvirt-472" +} diff --git a/tests/qemumonitorjsontest.c b/tests/qemumonitorjsontest.c index 7d128b6876..7d81493963 100644 --- a/tests/qemumonitorjsontest.c +++ b/tests/qemumonitorjsontest.c @@ -2770,6 +2770,60 @@ testQemuMonitorJSONGetSEVInfo(const void *opaque) return 0; } + +struct testQemuMonitorJSONGetGuestCPUData { + const char *name; + virQEMUDriver driver; + GHashTable *schema; +}; + +static int +testQemuMonitorJSONGetGuestCPU(const void *opaque) +{ + struct testQemuMonitorJSONGetGuestCPUData *data = (void *) opaque; + const char *base = abs_srcdir "/qemumonitorjsondata/get-guest-cpu"; + g_autofree char *fileJSON = NULL; + g_autofree char *fileEnabled = NULL; + g_autofree char *fileDisabled = NULL; + g_autoptr(qemuMonitorTest) mon = NULL; + g_autoptr(virCPUData) dataEnabled = NULL; + g_autoptr(virCPUData) dataDisabled = NULL; + g_autofree char *enabled = NULL; + g_autofree char *disabled = NULL; + bool failed = false; + + fileJSON = g_strdup_printf("%s-%s.json", base, data->name); + fileEnabled = g_strdup_printf("%s-%s-enabled.xml", base, data->name); + fileDisabled = g_strdup_printf("%s-%s-disabled.xml", base, data->name); + + if (!(mon = qemuMonitorTestNewFromFileFull(fileJSON, &data->driver, + NULL, data->schema))) + return -1; + + if (qemuMonitorJSONGetGuestCPU(qemuMonitorTestGetMonitor(mon), + VIR_ARCH_X86_64, + "/machine/unattached/device[0]", + virQEMUCapsCPUFeatureFromQEMU, + &dataEnabled, &dataDisabled) < 0) + return -1; + + if (!(enabled = virCPUDataFormat(dataEnabled)) || + !(disabled = virCPUDataFormat(dataDisabled))) + return -1; + + if (virTestCompareToFile(enabled, fileEnabled) < 0) + failed = true; + + if (virTestCompareToFile(disabled, fileDisabled) < 0) + failed = true; + + if (failed) + return -1; + + return 0; +} + + static int mymain(void) { @@ -2830,6 +2884,16 @@ mymain(void) ret = -1; \ } while (0) +#define DO_TEST_GET_GUEST_CPU(name) \ + do { \ + struct testQemuMonitorJSONGetGuestCPUData data = { \ + name, driver, qapiData.schema }; \ + if (virTestRun("GetGuestCPU(" name ")", \ + testQemuMonitorJSONGetGuestCPU, \ + &data) < 0) \ + ret = -1; \ + } while (0) + DO_TEST(GetStatus); DO_TEST(GetVersion); DO_TEST(GetMachines); @@ -2920,6 +2984,8 @@ mymain(void) DO_TEST_CPU_INFO("s390", 2); + DO_TEST_GET_GUEST_CPU("SierraForest"); + #define DO_TEST_QAPI_QUERY(nme, qry, scc, rplobj) \ do { \ -- 2.51.0

On Thu, Sep 04, 2025 at 16:46:50 +0200, Jiri Denemark via Devel wrote:
From: Jiri Denemark <jdenemar@redhat.com>
The SierraForest CPU was just randomly chosen and it doesn't mean we should have test cases for all CPU models.
Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- .../get-guest-cpu-SierraForest-disabled.xml | 7 + .../get-guest-cpu-SierraForest-enabled.xml | 9 + .../get-guest-cpu-SierraForest.json | 8680 +++++++++++++++++ tests/qemumonitorjsontest.c | 66 + 4 files changed, 8762 insertions(+) create mode 100644 tests/qemumonitorjsondata/get-guest-cpu-SierraForest-disabled.xml create mode 100644 tests/qemumonitorjsondata/get-guest-cpu-SierraForest-enabled.xml create mode 100644 tests/qemumonitorjsondata/get-guest-cpu-SierraForest.json
Reviewed-by: Peter Krempa <pkrempa@redhat.com>

From: Jiri Denemark <jdenemar@redhat.com> The key point here is that the unavailable-features property reports an empty array. Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- .../get-guest-cpu-SkylakeClient-disabled.xml | 2 + .../get-guest-cpu-SkylakeClient-enabled.xml | 7 + .../get-guest-cpu-SkylakeClient.json | 8671 +++++++++++++++++ tests/qemumonitorjsontest.c | 1 + 4 files changed, 8681 insertions(+) create mode 100644 tests/qemumonitorjsondata/get-guest-cpu-SkylakeClient-disabled.xml create mode 100644 tests/qemumonitorjsondata/get-guest-cpu-SkylakeClient-enabled.xml create mode 100644 tests/qemumonitorjsondata/get-guest-cpu-SkylakeClient.json diff --git a/tests/qemumonitorjsondata/get-guest-cpu-SkylakeClient-disabled.xml b/tests/qemumonitorjsondata/get-guest-cpu-SkylakeClient-disabled.xml new file mode 100644 index 0000000000..2b3c11165e --- /dev/null +++ b/tests/qemumonitorjsondata/get-guest-cpu-SkylakeClient-disabled.xml @@ -0,0 +1,2 @@ +<cpudata arch='x86'> +</cpudata> diff --git a/tests/qemumonitorjsondata/get-guest-cpu-SkylakeClient-enabled.xml b/tests/qemumonitorjsondata/get-guest-cpu-SkylakeClient-enabled.xml new file mode 100644 index 0000000000..c2f15507c2 --- /dev/null +++ b/tests/qemumonitorjsondata/get-guest-cpu-SkylakeClient-enabled.xml @@ -0,0 +1,7 @@ +<cpudata arch='x86'> + <cpuid eax_in='0x00000001' ecx_in='0x00000000' eax='0x00000000' ebx='0x00000000' ecx='0xf7fa3203' edx='0x078bfbff'/> + <cpuid eax_in='0x00000006' ecx_in='0x00000000' eax='0x00000004' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/> + <cpuid eax_in='0x00000007' ecx_in='0x00000000' eax='0x00000000' ebx='0x001c07a9' ecx='0x00000000' edx='0x04000000'/> + <cpuid eax_in='0x0000000d' ecx_in='0x00000001' eax='0x0000000f' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/> + <cpuid eax_in='0x80000001' ecx_in='0x00000000' eax='0x00000000' ebx='0x00000000' ecx='0x00000121' edx='0x28100800'/> +</cpudata> diff --git a/tests/qemumonitorjsondata/get-guest-cpu-SkylakeClient.json b/tests/qemumonitorjsondata/get-guest-cpu-SkylakeClient.json new file mode 100644 index 0000000000..a5ead153b5 --- /dev/null +++ b/tests/qemumonitorjsondata/get-guest-cpu-SkylakeClient.json @@ -0,0 +1,8671 @@ +{ + "execute": "qom-list", + "arguments": { + "path": "/machine/unattached/device[0]" + }, + "id": "libvirt-1" +} + +{ + "return": [ + { + "name": "type", + "type": "string" + }, + { + "name": "parent_bus", + "type": "link<bus>" + }, + { + "name": "realized", + "type": "bool" + }, + { + "name": "hotplugged", + "type": "bool" + }, + { + "name": "hotpluggable", + "type": "bool" + }, + { + "name": "memory", + "type": "link<memory-region>" + }, + { + "name": "legacy-memory", + "type": "str" + }, + { + "name": "start-powered-off", + "type": "bool" + }, + { + "name": "vmx-invept-single-context", + "type": "bool" + }, + { + "name": "core-capability", + "type": "bool" + }, + { + "name": "popcnt", + "type": "bool" + }, + { + "name": "sgx-debug", + "type": "bool" + }, + { + "name": "kvm-poll-control", + "type": "bool" + }, + { + "name": "dtes64", + "type": "bool" + }, + { + "name": "vmx-invvpid-single-addr", + "type": "bool" + }, + { + "name": "xstore", + "type": "bool" + }, + { + "name": "min-xlevel2", + "type": "uint32" + }, + { + "name": "stepping", + "type": "int" + }, + { + "name": "x-vendor-cpuid-only-v2", + "type": "bool" + }, + { + "name": "sm4", + "type": "bool" + }, + { + "name": "hv-emsr-bitmap", + "type": "bool" + }, + { + "name": "pse36", + "type": "bool" + }, + { + "name": "avx512-4vnniw", + "type": "bool" + }, + { + "name": "x-intel-pt-auto-level", + "type": "bool" + }, + { + "name": "fma4", + "type": "bool" + }, + { + "name": "avx512-vp2intersect", + "type": "bool" + }, + { + "name": "avx2", + "type": "bool" + }, + { + "name": "amd-psfd", + "type": "bool" + }, + { + "name": "amd-stibp", + "type": "bool" + }, + { + "name": "sgxlc", + "type": "bool" + }, + { + "name": "sm3", + "type": "bool" + }, + { + "name": "family", + "type": "int" + }, + { + "name": "vmx-ept-advanced-exitinfo", + "type": "bool" + }, + { + "name": "vmx-store-lma", + "type": "bool" + }, + { + "name": "msr-imm", + "type": "bool" + }, + { + "name": "vmware-cpuid-freq", + "type": "bool" + }, + { + "name": "hv-spinlocks", + "type": "uint32" + }, + { + "name": "x-force-cpuid-0x1f", + "type": "bool" + }, + { + "name": "ddpd-u", + "type": "bool" + }, + { + "name": "vmx-nested-exception", + "type": "bool" + }, + { + "name": "vmx-entry-noload-debugctl", + "type": "bool" + }, + { + "name": "bhi-no", + "type": "bool" + }, + { + "name": "amx-fp16", + "type": "bool" + }, + { + "name": "erms", + "type": "bool" + }, + { + "name": "vaes", + "type": "bool" + }, + { + "name": "vmx-eptad", + "type": "bool" + }, + { + "name": "vmx-activity-wait-sipi", + "type": "bool" + }, + { + "name": "vmx-flexpriority", + "type": "bool" + }, + { + "name": "hv-reset", + "type": "bool" + }, + { + "name": "rdrand", + "type": "bool" + }, + { + "name": "lam", + "type": "bool" + }, + { + "name": "vmx-pause-exit", + "type": "bool" + }, + { + "name": "vmx-shadow-vmcs", + "type": "bool" + }, + { + "name": "model", + "type": "int" + }, + { + "name": "avx512-vpopcntdq", + "type": "bool" + }, + { + "name": "xcrypt", + "type": "bool" + }, + { + "name": "tbm", + "type": "bool" + }, + { + "name": "movdiri", + "type": "bool" + }, + { + "name": "vmx-monitor-exit", + "type": "bool" + }, + { + "name": "kvm-pv-eoi", + "type": "bool" + }, + { + "name": "hv-version-id-spack", + "type": "uint32" + }, + { + "name": "lm", + "type": "bool" + }, + { + "name": "x-vendor-cpuid-only", + "type": "bool" + }, + { + "name": "pbrsb-no", + "type": "bool" + }, + { + "name": "vmx-unrestricted-guest", + "type": "bool" + }, + { + "name": "host-phys-bits-limit", + "type": "uint8" + }, + { + "name": "pae", + "type": "bool" + }, + { + "name": "ssse3", + "type": "bool" + }, + { + "name": "hv-runtime", + "type": "bool" + }, + { + "name": "phe", + "type": "bool" + }, + { + "name": "guest-phys-bits", + "type": "uint32" + }, + { + "name": "host-phys-bits", + "type": "bool" + }, + { + "name": "taa-no", + "type": "bool" + }, + { + "name": "sgx-aex-notify", + "type": "bool" + }, + { + "name": "full-width-write", + "type": "bool" + }, + { + "name": "arat", + "type": "bool" + }, + { + "name": "avx512vbmi2", + "type": "bool" + }, + { + "name": "sha512", + "type": "bool" + }, + { + "name": "arch-lbr", + "type": "bool" + }, + { + "name": "vmx-vnmi-pending", + "type": "bool" + }, + { + "name": "vmx-any-errcode", + "type": "bool" + }, + { + "name": "x2apic", + "type": "bool" + }, + { + "name": "npt", + "type": "bool" + }, + { + "name": "pmm-en", + "type": "bool" + }, + { + "name": "vmx-invpcid-exit", + "type": "bool" + }, + { + "name": "avx512ifma", + "type": "bool" + }, + { + "name": "ibpb-brtype", + "type": "bool" + }, + { + "name": "model-id", + "type": "string" + }, + { + "name": "ucode-rev", + "type": "uint64" + }, + { + "name": "hv-evmcs", + "type": "bool" + }, + { + "name": "srso-user-kernel-no", + "type": "bool" + }, + { + "name": "vmx-io-exit", + "type": "bool" + }, + { + "name": "tsc", + "type": "bool" + }, + { + "name": "x-force-features", + "type": "bool" + }, + { + "name": "vmx-ins-outs", + "type": "bool" + }, + { + "name": "dca", + "type": "bool" + }, + { + "name": "vmx-apicv-x2apic", + "type": "bool" + }, + { + "name": "perfctr-core", + "type": "bool" + }, + { + "name": "ia64", + "type": "bool" + }, + { + "name": "fdp-excptn-only", + "type": "bool" + }, + { + "name": "hv-stimer-direct", + "type": "bool" + }, + { + "name": "gds-no", + "type": "bool" + }, + { + "name": "vmx-exit-secondary-ctls", + "type": "bool" + }, + { + "name": "vmx-cr3-load-noexit", + "type": "bool" + }, + { + "name": "rfds-no", + "type": "bool" + }, + { + "name": "pmu", + "type": "bool" + }, + { + "name": "vmx-entry-load-rtit-ctl", + "type": "bool" + }, + { + "name": "kvmclock", + "type": "bool" + }, + { + "name": "avx10", + "type": "bool" + }, + { + "name": "vmx-invept-single-context-noglobals", + "type": "bool" + }, + { + "name": "xen-vapic", + "type": "bool" + }, + { + "name": "md-clear", + "type": "bool" + }, + { + "name": "invtsc", + "type": "bool" + }, + { + "name": "pn", + "type": "bool" + }, + { + "name": "avx512cd", + "type": "bool" + }, + { + "name": "cmp-legacy", + "type": "bool" + }, + { + "name": "cx16", + "type": "bool" + }, + { + "name": "avx512dq", + "type": "bool" + }, + { + "name": "abm", + "type": "bool" + }, + { + "name": "vmx-activity-shutdown", + "type": "bool" + }, + { + "name": "auto-ibrs", + "type": "bool" + }, + { + "name": "kvm-pv-ipi", + "type": "bool" + }, + { + "name": "avx10-128", + "type": "bool" + }, + { + "name": "vmx-apicv-register", + "type": "bool" + }, + { + "name": "fxsr-opt", + "type": "bool" + }, + { + "name": "skip-l1dfl-vmentry", + "type": "bool" + }, + { + "name": "fill-mtrr-mask", + "type": "bool" + }, + { + "name": "x-migrate-smi-count", + "type": "bool" + }, + { + "name": "wbnoinvd", + "type": "bool" + }, + { + "name": "sgx1", + "type": "bool" + }, + { + "name": "rdpid", + "type": "bool" + }, + { + "name": "pcid", + "type": "bool" + }, + { + "name": "bhi-ctrl", + "type": "bool" + }, + { + "name": "syscall", + "type": "bool" + }, + { + "name": "pse", + "type": "bool" + }, + { + "name": "rrsba-ctrl", + "type": "bool" + }, + { + "name": "avx-ne-convert", + "type": "bool" + }, + { + "name": "xsaves", + "type": "bool" + }, + { + "name": "vmx-entry-load-pat", + "type": "bool" + }, + { + "name": "vgif", + "type": "bool" + }, + { + "name": "mce", + "type": "bool" + }, + { + "name": "xfd", + "type": "bool" + }, + { + "name": "node-id", + "type": "int32" + }, + { + "name": "sgx-tokenkey", + "type": "bool" + }, + { + "name": "ibpb", + "type": "bool" + }, + { + "name": "x-amd-topoext-features-only", + "type": "bool" + }, + { + "name": "vmx-apicv-xapic", + "type": "bool" + }, + { + "name": "vmx-hlt-exit", + "type": "bool" + }, + { + "name": "lwp", + "type": "bool" + }, + { + "name": "eraps", + "type": "bool" + }, + { + "name": "cldemote", + "type": "bool" + }, + { + "name": "vmx-exit-load-pkrs", + "type": "bool" + }, + { + "name": "rtm", + "type": "bool" + }, + { + "name": "hv-tlbflush", + "type": "bool" + }, + { + "name": "kvm-steal-time", + "type": "bool" + }, + { + "name": "cpuid-0xb", + "type": "bool" + }, + { + "name": "fsrs", + "type": "bool" + }, + { + "name": "sgx-provisionkey", + "type": "bool" + }, + { + "name": "vmx-eptp-switching", + "type": "bool" + }, + { + "name": "vmx-invlpg-exit", + "type": "bool" + }, + { + "name": "vmx-entry-load-efer", + "type": "bool" + }, + { + "name": "level-func7", + "type": "uint32" + }, + { + "name": "die-id", + "type": "int32" + }, + { + "name": "vmx-exit-save-efer", + "type": "bool" + }, + { + "name": "x-l1-cache-per-thread", + "type": "bool" + }, + { + "name": "vme", + "type": "bool" + }, + { + "name": "kvm-pv-unhalt", + "type": "bool" + }, + { + "name": "vmx-desc-exit", + "type": "bool" + }, + { + "name": "sgx-kss", + "type": "bool" + }, + { + "name": "vmx-invvpid", + "type": "bool" + }, + { + "name": "vmx-entry-ia32e-mode", + "type": "bool" + }, + { + "name": "svm", + "type": "bool" + }, + { + "name": "kvm-hint-dedicated", + "type": "bool" + }, + { + "name": "vmx-ept-execonly", + "type": "bool" + }, + { + "name": "avx-ifma", + "type": "bool" + }, + { + "name": "module-id", + "type": "int32" + }, + { + "name": "mca", + "type": "bool" + }, + { + "name": "vmx-tsc-scaling", + "type": "bool" + }, + { + "name": "mtrr", + "type": "bool" + }, + { + "name": "cid", + "type": "bool" + }, + { + "name": "pfthreshold", + "type": "bool" + }, + { + "name": "pmm", + "type": "bool" + }, + { + "name": "lahf-lm", + "type": "bool" + }, + { + "name": "zero-fcs-fds", + "type": "bool" + }, + { + "name": "hv-version-id-build", + "type": "uint32" + }, + { + "name": "vmx-entry-load-pkrs", + "type": "bool" + }, + { + "name": "tcg-cpuid", + "type": "bool" + }, + { + "name": "no-nested-data-bp", + "type": "bool" + }, + { + "name": "legacy-multi-node", + "type": "bool" + }, + { + "name": "x-hv-max-vps", + "type": "int32" + }, + { + "name": "tm", + "type": "bool" + }, + { + "name": "pbe", + "type": "bool" + }, + { + "name": "amx-int8", + "type": "bool" + }, + { + "name": "vmx-rdpmc-exit", + "type": "bool" + }, + { + "name": "intel-psfd", + "type": "bool" + }, + { + "name": "fs-gs-base-ns", + "type": "bool" + }, + { + "name": "split-lock-detect", + "type": "bool" + }, + { + "name": "apic-id", + "type": "uint32" + }, + { + "name": "fpu", + "type": "bool" + }, + { + "name": "skinit", + "type": "bool" + }, + { + "name": "l3-cache", + "type": "bool" + }, + { + "name": "sep", + "type": "bool" + }, + { + "name": "vmx-exit-load-pat", + "type": "bool" + }, + { + "name": "intel-pt-lip", + "type": "bool" + }, + { + "name": "avx10-512", + "type": "bool" + }, + { + "name": "hv-tlbflush-direct", + "type": "bool" + }, + { + "name": "avx512-bf16", + "type": "bool" + }, + { + "name": "overflow-recov", + "type": "bool" + }, + { + "name": "vmx-vnmi", + "type": "bool" + }, + { + "name": "vmx-rdtscp-exit", + "type": "bool" + }, + { + "name": "amx-complex", + "type": "bool" + }, + { + "name": "nx", + "type": "bool" + }, + { + "name": "vmx-invvpid-all-context", + "type": "bool" + }, + { + "name": "avx-vnni-int8", + "type": "bool" + }, + { + "name": "vmx-vmwrite-vmexit-fields", + "type": "bool" + }, + { + "name": "vmx-page-walk-4", + "type": "bool" + }, + { + "name": "rfds-clear", + "type": "bool" + }, + { + "name": "pause-filter", + "type": "bool" + }, + { + "name": "ds-cpl", + "type": "bool" + }, + { + "name": "succor", + "type": "bool" + }, + { + "name": "fred", + "type": "bool" + }, + { + "name": "fsrm", + "type": "bool" + }, + { + "name": "vmx-exit-load-efer", + "type": "bool" + }, + { + "name": "vmx-mtf", + "type": "bool" + }, + { + "name": "vmx-entry-load-fred", + "type": "bool" + }, + { + "name": "vmx-ept", + "type": "bool" + }, + { + "name": "fb-clear", + "type": "bool" + }, + { + "name": "nodeid-msr", + "type": "bool" + }, + { + "name": "vmx-exit-clear-bndcfgs", + "type": "bool" + }, + { + "name": "smap", + "type": "bool" + }, + { + "name": "vmx-io-bitmap", + "type": "bool" + }, + { + "name": "vmx-preemption-timer", + "type": "bool" + }, + { + "name": "vmx-invept-all-context", + "type": "bool" + }, + { + "name": "vmx-intr-exit", + "type": "bool" + }, + { + "name": "prefetchiti", + "type": "bool" + }, + { + "name": "psdp-no", + "type": "bool" + }, + { + "name": "cr8legacy", + "type": "bool" + }, + { + "name": "xlevel", + "type": "uint32" + }, + { + "name": "vmx-vpid", + "type": "bool" + }, + { + "name": "vmx-zero-len-inject", + "type": "bool" + }, + { + "name": "pschange-mc-no", + "type": "bool" + }, + { + "name": "virt-ssbd", + "type": "bool" + }, + { + "name": "umip", + "type": "bool" + }, + { + "name": "avx512er", + "type": "bool" + }, + { + "name": "vmx-vintr-pending", + "type": "bool" + }, + { + "name": "xstore-en", + "type": "bool" + }, + { + "name": "avx512vl", + "type": "bool" + }, + { + "name": "ibrs", + "type": "bool" + }, + { + "name": "rsba", + "type": "bool" + }, + { + "name": "cmov", + "type": "bool" + }, + { + "name": "vmx-posted-intr", + "type": "bool" + }, + { + "name": "xcrypt-en", + "type": "bool" + }, + { + "name": "tm2", + "type": "bool" + }, + { + "name": "lbrv", + "type": "bool" + }, + { + "name": "tsc-scale", + "type": "bool" + }, + { + "name": "vmx-secondary-ctls", + "type": "bool" + }, + { + "name": "xsaveerptr", + "type": "bool" + }, + { + "name": "fsgsbase", + "type": "bool" + }, + { + "name": "x-hv-synic-kvm-only", + "type": "bool" + }, + { + "name": "avx512bw", + "type": "bool" + }, + { + "name": "hv-version-id-minor", + "type": "uint16" + }, + { + "name": "tce", + "type": "bool" + }, + { + "name": "tsc-frequency", + "type": "int" + }, + { + "name": "smx", + "type": "bool" + }, + { + "name": "hle", + "type": "bool" + }, + { + "name": "monitor", + "type": "bool" + }, + { + "name": "avx512-fp16", + "type": "bool" + }, + { + "name": "sse4a", + "type": "bool" + }, + { + "name": "vpclmulqdq", + "type": "bool" + }, + { + "name": "hv-frequencies", + "type": "bool" + }, + { + "name": "kvm-pv-tlb-flush", + "type": "bool" + }, + { + "name": "vmx-rdtsc-exit", + "type": "bool" + }, + { + "name": "vmx-activity-hlt", + "type": "bool" + }, + { + "name": "vmx-entry-load-bndcfgs", + "type": "bool" + }, + { + "name": "sgx-edeccssa", + "type": "bool" + }, + { + "name": "xsavec", + "type": "bool" + }, + { + "name": "vmx-cr8-load-exit", + "type": "bool" + }, + { + "name": "mds-no", + "type": "bool" + }, + { + "name": "svme-addr-chk", + "type": "bool" + }, + { + "name": "amd-no-ssb", + "type": "bool" + }, + { + "name": "xop", + "type": "bool" + }, + { + "name": "adx", + "type": "bool" + }, + { + "name": "perfmon-v2", + "type": "bool" + }, + { + "name": "hv-version-id-sbranch", + "type": "uint8" + }, + { + "name": "crash-information", + "type": "GuestPanicInformation" + }, + { + "name": "min-level", + "type": "uint32" + }, + { + "name": "full-cpuid-auto-level", + "type": "bool" + }, + { + "name": "vmx-exit-ack-intr", + "type": "bool" + }, + { + "name": "vmx-rdseed-exit", + "type": "bool" + }, + { + "name": "pclmulqdq", + "type": "bool" + }, + { + "name": "msr", + "type": "bool" + }, + { + "name": "wrmsrns", + "type": "bool" + }, + { + "name": "kvm-pv-enforce-cpuid", + "type": "bool" + }, + { + "name": "ssb-no", + "type": "bool" + }, + { + "name": "clflush", + "type": "bool" + }, + { + "name": "xlevel2", + "type": "uint32" + }, + { + "name": "mpx", + "type": "bool" + }, + { + "name": "extapic", + "type": "bool" + }, + { + "name": "lfence-always-serializing", + "type": "bool" + }, + { + "name": "hv-enforce-cpuid", + "type": "bool" + }, + { + "name": "hv-stimer", + "type": "bool" + }, + { + "name": "sgx2", + "type": "bool" + }, + { + "name": "kvm-asyncpf-vmexit", + "type": "bool" + }, + { + "name": "smep", + "type": "bool" + }, + { + "name": "vnmi", + "type": "bool" + }, + { + "name": "vmx-mwait-exit", + "type": "bool" + }, + { + "name": "hv-synic", + "type": "bool" + }, + { + "name": "cx8", + "type": "bool" + }, + { + "name": "vmcb-clean", + "type": "bool" + }, + { + "name": "pku", + "type": "bool" + }, + { + "name": "kvm", + "type": "bool" + }, + { + "name": "srso-no", + "type": "bool" + }, + { + "name": "hv-passthrough", + "type": "bool" + }, + { + "name": "lkgs", + "type": "bool" + }, + { + "name": "tsx-ldtrk", + "type": "bool" + }, + { + "name": "hv-tlbflush-ext", + "type": "bool" + }, + { + "name": "stibp", + "type": "bool" + }, + { + "name": "vmx-cr3-store-noexit", + "type": "bool" + }, + { + "name": "tsx-ctrl", + "type": "bool" + }, + { + "name": "clzero", + "type": "bool" + }, + { + "name": "svm-lock", + "type": "bool" + }, + { + "name": "hv-reenlightenment", + "type": "bool" + }, + { + "name": "x-consistent-cache", + "type": "bool" + }, + { + "name": "avic", + "type": "bool" + }, + { + "name": "hv-vpindex", + "type": "bool" + }, + { + "name": "osvw", + "type": "bool" + }, + { + "name": "sgx-exinfo", + "type": "bool" + }, + { + "name": "legacy-cache", + "type": "bool" + }, + { + "name": "sse", + "type": "bool" + }, + { + "name": "fsrc", + "type": "bool" + }, + { + "name": "ds", + "type": "bool" + }, + { + "name": "pks", + "type": "bool" + }, + { + "name": "vmx-ept-2mb", + "type": "bool" + }, + { + "name": "vmx-true-ctls", + "type": "bool" + }, + { + "name": "movdir64b", + "type": "bool" + }, + { + "name": "vmx-ept-1gb", + "type": "bool" + }, + { + "name": "vmx-invept", + "type": "bool" + }, + { + "name": "ipred-ctrl", + "type": "bool" + }, + { + "name": "vmx-rdrand-exit", + "type": "bool" + }, + { + "name": "acpi", + "type": "bool" + }, + { + "name": "vmx-encls-exit", + "type": "bool" + }, + { + "name": "vmx-cr8-store-exit", + "type": "bool" + }, + { + "name": "sbdr-ssdp-no", + "type": "bool" + }, + { + "name": "its-no", + "type": "bool" + }, + { + "name": "kvm-mmu", + "type": "bool" + }, + { + "name": "3dnowprefetch", + "type": "bool" + }, + { + "name": "nrip-save", + "type": "bool" + }, + { + "name": "gfni", + "type": "bool" + }, + { + "name": "flush-l1d", + "type": "bool" + }, + { + "name": "kvm-msi-ext-dest-id", + "type": "bool" + }, + { + "name": "fzrm", + "type": "bool" + }, + { + "name": "serialize", + "type": "bool" + }, + { + "name": "avx512bitalg", + "type": "bool" + }, + { + "name": "rdseed", + "type": "bool" + }, + { + "name": "sha-ni", + "type": "bool" + }, + { + "name": "ace2", + "type": "bool" + }, + { + "name": "lmce", + "type": "bool" + }, + { + "name": "avx10-version", + "type": "uint8" + }, + { + "name": "topoext", + "type": "bool" + }, + { + "name": "f16c", + "type": "bool" + }, + { + "name": "waitpkg", + "type": "bool" + }, + { + "name": "avx512-4fmaps", + "type": "bool" + }, + { + "name": "fbsdp-no", + "type": "bool" + }, + { + "name": "avx", + "type": "bool" + }, + { + "name": "sse2", + "type": "bool" + }, + { + "name": "rdctl-no", + "type": "bool" + }, + { + "name": "mmx", + "type": "bool" + }, + { + "name": "hv-version-id-major", + "type": "uint16" + }, + { + "name": "level", + "type": "uint32" + }, + { + "name": "avx512vnni", + "type": "bool" + }, + { + "name": "pni", + "type": "bool" + }, + { + "name": "movbe", + "type": "bool" + }, + { + "name": "vmx-ple", + "type": "bool" + }, + { + "name": "mmxext", + "type": "bool" + }, + { + "name": "lbr-fmt", + "type": "uint64" + }, + { + "name": "bus-lock-detect", + "type": "bool" + }, + { + "name": "vmx-apicv-vid", + "type": "bool" + }, + { + "name": "vmx-page-walk-5", + "type": "bool" + }, + { + "name": "flushbyasid", + "type": "bool" + }, + { + "name": "rdtscp", + "type": "bool" + }, + { + "name": "clwb", + "type": "bool" + }, + { + "name": "kvm-pv-sched-yield", + "type": "bool" + }, + { + "name": "kvm-asyncpf", + "type": "bool" + }, + { + "name": "avx-vnni-int16", + "type": "bool" + }, + { + "name": "decodeassists", + "type": "bool" + }, + { + "name": "vmx-wbinvd-exit", + "type": "bool" + }, + { + "name": "pat", + "type": "bool" + }, + { + "name": "vmx-exit-clear-rtit-ctl", + "type": "bool" + }, + { + "name": "invpcid", + "type": "bool" + }, + { + "name": "pdpe1gb", + "type": "bool" + }, + { + "name": "vmx-exit-save-pat", + "type": "bool" + }, + { + "name": "unavailable-features", + "type": "strList" + }, + { + "name": "tsc-adjust", + "type": "bool" + }, + { + "name": "vmx-enable-user-wait-pause", + "type": "bool" + }, + { + "name": "ht", + "type": "bool" + }, + { + "name": "amx-tile", + "type": "bool" + }, + { + "name": "clflushopt", + "type": "bool" + }, + { + "name": "hv-xmm-input", + "type": "bool" + }, + { + "name": "vmx-tsc-offset", + "type": "bool" + }, + { + "name": "ssbd", + "type": "bool" + }, + { + "name": "3dnowext", + "type": "bool" + }, + { + "name": "xtpr", + "type": "bool" + }, + { + "name": "sgx", + "type": "bool" + }, + { + "name": "hv-crash", + "type": "bool" + }, + { + "name": "xsave", + "type": "bool" + }, + { + "name": "pdcm", + "type": "bool" + }, + { + "name": "hv-vendor-id", + "type": "str" + }, + { + "name": "est", + "type": "bool" + }, + { + "name": "vendor", + "type": "string" + }, + { + "name": "pge", + "type": "bool" + }, + { + "name": "pcommit", + "type": "bool" + }, + { + "name": "ibs", + "type": "bool" + }, + { + "name": "tsc-deadline", + "type": "bool" + }, + { + "name": "sgx-mode64", + "type": "bool" + }, + { + "name": "kvmclock-stable-bit", + "type": "bool" + }, + { + "name": "misalignsse", + "type": "bool" + }, + { + "name": "vmx-msr-bitmap", + "type": "bool" + }, + { + "name": "check", + "type": "bool" + }, + { + "name": "hv-time", + "type": "bool" + }, + { + "name": "perfctr-nb", + "type": "bool" + }, + { + "name": "hv-avic", + "type": "bool" + }, + { + "name": "vmx-vmfunc", + "type": "bool" + }, + { + "name": "phys-bits", + "type": "uint32" + }, + { + "name": "apic", + "type": "bool" + }, + { + "name": "vmx-exit-save-preemption-timer", + "type": "bool" + }, + { + "name": "prefetchi", + "type": "bool" + }, + { + "name": "vmx-nmi-exit", + "type": "bool" + }, + { + "name": "avx512vbmi", + "type": "bool" + }, + { + "name": "thread-id", + "type": "int32" + }, + { + "name": "min-xlevel", + "type": "uint32" + }, + { + "name": "socket-id", + "type": "int32" + }, + { + "name": "vmx-exit-nosave-debugctl", + "type": "bool" + }, + { + "name": "bmi2", + "type": "bool" + }, + { + "name": "vmx-xsaves", + "type": "bool" + }, + { + "name": "avx512f", + "type": "bool" + }, + { + "name": "arch-capabilities", + "type": "bool" + }, + { + "name": "vmx-exit-load-perf-global-ctrl", + "type": "bool" + }, + { + "name": "vmx-pml", + "type": "bool" + }, + { + "name": "vmx-entry-load-perf-global-ctrl", + "type": "bool" + }, + { + "name": "ace2-en", + "type": "bool" + }, + { + "name": "wdt", + "type": "bool" + }, + { + "name": "intel-pt", + "type": "bool" + }, + { + "name": "kvm-nopiodelay", + "type": "bool" + }, + { + "name": "cmpccxadd", + "type": "bool" + }, + { + "name": "v-vmsave-vmload", + "type": "bool" + }, + { + "name": "avx512pf", + "type": "bool" + }, + { + "name": "bmi1", + "type": "bool" + }, + { + "name": "enforce", + "type": "bool" + }, + { + "name": "sse4.2", + "type": "bool" + }, + { + "name": "hv-syndbg", + "type": "bool" + }, + { + "name": "ibrs-all", + "type": "bool" + }, + { + "name": "xgetbv1", + "type": "bool" + }, + { + "name": "mcdt-no", + "type": "bool" + }, + { + "name": "spec-ctrl", + "type": "bool" + }, + { + "name": "3dnow", + "type": "bool" + }, + { + "name": "kvm-asyncpf-int", + "type": "bool" + }, + { + "name": "vmx", + "type": "bool" + }, + { + "name": "la57", + "type": "bool" + }, + { + "name": "hv-no-nonarch-coresharing", + "type": "OnOffAuto" + }, + { + "name": "amx-bf16", + "type": "bool" + }, + { + "name": "sse4.1", + "type": "bool" + }, + { + "name": "xsaveopt", + "type": "bool" + }, + { + "name": "hv-relaxed", + "type": "bool" + }, + { + "name": "hv-version-id-snumber", + "type": "uint32" + }, + { + "name": "stibp-always-on", + "type": "bool" + }, + { + "name": "sbpb", + "type": "bool" + }, + { + "name": "avx-vnni", + "type": "bool" + }, + { + "name": "fxsr", + "type": "bool" + }, + { + "name": "phe-en", + "type": "bool" + }, + { + "name": "hv-vapic", + "type": "bool" + }, + { + "name": "hv-ipi", + "type": "bool" + }, + { + "name": "null-sel-clr-base", + "type": "bool" + }, + { + "name": "hypervisor", + "type": "bool" + }, + { + "name": "avx10-256", + "type": "bool" + }, + { + "name": "aes", + "type": "bool" + }, + { + "name": "amd-ssbd", + "type": "bool" + }, + { + "name": "core-id", + "type": "int32" + }, + { + "name": "de", + "type": "bool" + }, + { + "name": "ss", + "type": "bool" + }, + { + "name": "vmx-movdr-exit", + "type": "bool" + }, + { + "name": "fma", + "type": "bool" + }, + { + "name": "lahf_lm", + "type": "bool" + }, + { + "name": "lapic", + "type": "child<kvm-apic>" + }, + { + "name": "tsc_adjust", + "type": "bool" + }, + { + "name": "svm_lock", + "type": "bool" + }, + { + "name": "vmcb_clean", + "type": "bool" + }, + { + "name": "nrip_save", + "type": "bool" + }, + { + "name": "lbr_fmt", + "type": "uint64" + }, + { + "name": "pclmuldq", + "type": "bool" + }, + { + "name": "ffxsr", + "type": "bool" + }, + { + "name": "sse4-2", + "type": "bool" + }, + { + "name": "kvm_asyncpf_int", + "type": "bool" + }, + { + "name": "cmp_legacy", + "type": "bool" + }, + { + "name": "kvm_nopiodelay", + "type": "bool" + }, + { + "name": "perfctr_core", + "type": "bool" + }, + { + "name": "kvm_pv_unhalt", + "type": "bool" + }, + { + "name": "ds_cpl", + "type": "bool" + }, + { + "name": "sse4-1", + "type": "bool" + }, + { + "name": "perfctr_nb", + "type": "bool" + }, + { + "name": "sse3", + "type": "bool" + }, + { + "name": "tsc_scale", + "type": "bool" + }, + { + "name": "pause_filter", + "type": "bool" + }, + { + "name": "kvm_asyncpf", + "type": "bool" + }, + { + "name": "kvm_steal_time", + "type": "bool" + }, + { + "name": "feature-words", + "type": "X86CPUFeatureWordInfo" + }, + { + "name": "kvm_mmu", + "type": "bool" + }, + { + "name": "filtered-features", + "type": "X86CPUFeatureWordInfo" + }, + { + "name": "sse4_2", + "type": "bool" + }, + { + "name": "kvm_poll_control", + "type": "bool" + }, + { + "name": "fxsr_opt", + "type": "bool" + }, + { + "name": "nodeid_msr", + "type": "bool" + }, + { + "name": "kvm_pv_eoi", + "type": "bool" + }, + { + "name": "i64", + "type": "bool" + }, + { + "name": "hv-apicv", + "type": "bool" + }, + { + "name": "xd", + "type": "bool" + }, + { + "name": "sse4_1", + "type": "bool" + } + ], + "id": "libvirt-1" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "realized" + }, + "id": "libvirt-2" +} + +{ + "return": true, + "id": "libvirt-2" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "hotplugged" + }, + "id": "libvirt-3" +} + +{ + "return": false, + "id": "libvirt-3" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "hotpluggable" + }, + "id": "libvirt-4" +} + +{ + "return": true, + "id": "libvirt-4" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "start-powered-off" + }, + "id": "libvirt-5" +} + +{ + "return": false, + "id": "libvirt-5" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-invept-single-context" + }, + "id": "libvirt-6" +} + +{ + "return": false, + "id": "libvirt-6" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "core-capability" + }, + "id": "libvirt-7" +} + +{ + "return": false, + "id": "libvirt-7" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "popcnt" + }, + "id": "libvirt-8" +} + +{ + "return": true, + "id": "libvirt-8" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "sgx-debug" + }, + "id": "libvirt-9" +} + +{ + "return": false, + "id": "libvirt-9" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "kvm-poll-control" + }, + "id": "libvirt-10" +} + +{ + "return": false, + "id": "libvirt-10" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "dtes64" + }, + "id": "libvirt-11" +} + +{ + "return": false, + "id": "libvirt-11" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-invvpid-single-addr" + }, + "id": "libvirt-12" +} + +{ + "return": false, + "id": "libvirt-12" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "xstore" + }, + "id": "libvirt-13" +} + +{ + "return": false, + "id": "libvirt-13" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "x-vendor-cpuid-only-v2" + }, + "id": "libvirt-14" +} + +{ + "return": false, + "id": "libvirt-14" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "sm4" + }, + "id": "libvirt-15" +} + +{ + "return": false, + "id": "libvirt-15" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "hv-emsr-bitmap" + }, + "id": "libvirt-16" +} + +{ + "return": false, + "id": "libvirt-16" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "pse36" + }, + "id": "libvirt-17" +} + +{ + "return": true, + "id": "libvirt-17" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "avx512-4vnniw" + }, + "id": "libvirt-18" +} + +{ + "return": false, + "id": "libvirt-18" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "x-intel-pt-auto-level" + }, + "id": "libvirt-19" +} + +{ + "return": true, + "id": "libvirt-19" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "fma4" + }, + "id": "libvirt-20" +} + +{ + "return": false, + "id": "libvirt-20" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "avx512-vp2intersect" + }, + "id": "libvirt-21" +} + +{ + "return": false, + "id": "libvirt-21" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "avx2" + }, + "id": "libvirt-22" +} + +{ + "return": true, + "id": "libvirt-22" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "amd-psfd" + }, + "id": "libvirt-23" +} + +{ + "return": false, + "id": "libvirt-23" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "amd-stibp" + }, + "id": "libvirt-24" +} + +{ + "return": false, + "id": "libvirt-24" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "sgxlc" + }, + "id": "libvirt-25" +} + +{ + "return": false, + "id": "libvirt-25" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "sm3" + }, + "id": "libvirt-26" +} + +{ + "return": false, + "id": "libvirt-26" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-ept-advanced-exitinfo" + }, + "id": "libvirt-27" +} + +{ + "return": false, + "id": "libvirt-27" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-store-lma" + }, + "id": "libvirt-28" +} + +{ + "return": false, + "id": "libvirt-28" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "msr-imm" + }, + "id": "libvirt-29" +} + +{ + "return": false, + "id": "libvirt-29" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmware-cpuid-freq" + }, + "id": "libvirt-30" +} + +{ + "return": true, + "id": "libvirt-30" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "x-force-cpuid-0x1f" + }, + "id": "libvirt-31" +} + +{ + "return": false, + "id": "libvirt-31" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "ddpd-u" + }, + "id": "libvirt-32" +} + +{ + "return": false, + "id": "libvirt-32" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-nested-exception" + }, + "id": "libvirt-33" +} + +{ + "return": false, + "id": "libvirt-33" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-entry-noload-debugctl" + }, + "id": "libvirt-34" +} + +{ + "return": false, + "id": "libvirt-34" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "bhi-no" + }, + "id": "libvirt-35" +} + +{ + "return": false, + "id": "libvirt-35" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "amx-fp16" + }, + "id": "libvirt-36" +} + +{ + "return": false, + "id": "libvirt-36" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "erms" + }, + "id": "libvirt-37" +} + +{ + "return": true, + "id": "libvirt-37" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vaes" + }, + "id": "libvirt-38" +} + +{ + "return": false, + "id": "libvirt-38" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-eptad" + }, + "id": "libvirt-39" +} + +{ + "return": false, + "id": "libvirt-39" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-activity-wait-sipi" + }, + "id": "libvirt-40" +} + +{ + "return": false, + "id": "libvirt-40" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-flexpriority" + }, + "id": "libvirt-41" +} + +{ + "return": false, + "id": "libvirt-41" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "hv-reset" + }, + "id": "libvirt-42" +} + +{ + "return": false, + "id": "libvirt-42" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "rdrand" + }, + "id": "libvirt-43" +} + +{ + "return": true, + "id": "libvirt-43" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "lam" + }, + "id": "libvirt-44" +} + +{ + "return": false, + "id": "libvirt-44" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-pause-exit" + }, + "id": "libvirt-45" +} + +{ + "return": false, + "id": "libvirt-45" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-shadow-vmcs" + }, + "id": "libvirt-46" +} + +{ + "return": false, + "id": "libvirt-46" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "avx512-vpopcntdq" + }, + "id": "libvirt-47" +} + +{ + "return": false, + "id": "libvirt-47" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "xcrypt" + }, + "id": "libvirt-48" +} + +{ + "return": false, + "id": "libvirt-48" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "tbm" + }, + "id": "libvirt-49" +} + +{ + "return": false, + "id": "libvirt-49" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "movdiri" + }, + "id": "libvirt-50" +} + +{ + "return": false, + "id": "libvirt-50" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-monitor-exit" + }, + "id": "libvirt-51" +} + +{ + "return": false, + "id": "libvirt-51" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "kvm-pv-eoi" + }, + "id": "libvirt-52" +} + +{ + "return": true, + "id": "libvirt-52" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "lm" + }, + "id": "libvirt-53" +} + +{ + "return": true, + "id": "libvirt-53" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "x-vendor-cpuid-only" + }, + "id": "libvirt-54" +} + +{ + "return": true, + "id": "libvirt-54" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "pbrsb-no" + }, + "id": "libvirt-55" +} + +{ + "return": false, + "id": "libvirt-55" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-unrestricted-guest" + }, + "id": "libvirt-56" +} + +{ + "return": false, + "id": "libvirt-56" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "pae" + }, + "id": "libvirt-57" +} + +{ + "return": true, + "id": "libvirt-57" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "ssse3" + }, + "id": "libvirt-58" +} + +{ + "return": true, + "id": "libvirt-58" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "hv-runtime" + }, + "id": "libvirt-59" +} + +{ + "return": false, + "id": "libvirt-59" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "phe" + }, + "id": "libvirt-60" +} + +{ + "return": false, + "id": "libvirt-60" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "host-phys-bits" + }, + "id": "libvirt-61" +} + +{ + "return": false, + "id": "libvirt-61" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "taa-no" + }, + "id": "libvirt-62" +} + +{ + "return": false, + "id": "libvirt-62" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "sgx-aex-notify" + }, + "id": "libvirt-63" +} + +{ + "return": false, + "id": "libvirt-63" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "full-width-write" + }, + "id": "libvirt-64" +} + +{ + "return": false, + "id": "libvirt-64" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "arat" + }, + "id": "libvirt-65" +} + +{ + "return": true, + "id": "libvirt-65" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "avx512vbmi2" + }, + "id": "libvirt-66" +} + +{ + "return": false, + "id": "libvirt-66" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "sha512" + }, + "id": "libvirt-67" +} + +{ + "return": false, + "id": "libvirt-67" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "arch-lbr" + }, + "id": "libvirt-68" +} + +{ + "return": false, + "id": "libvirt-68" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-vnmi-pending" + }, + "id": "libvirt-69" +} + +{ + "return": false, + "id": "libvirt-69" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-any-errcode" + }, + "id": "libvirt-70" +} + +{ + "return": false, + "id": "libvirt-70" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "x2apic" + }, + "id": "libvirt-71" +} + +{ + "return": true, + "id": "libvirt-71" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "npt" + }, + "id": "libvirt-72" +} + +{ + "return": false, + "id": "libvirt-72" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "pmm-en" + }, + "id": "libvirt-73" +} + +{ + "return": false, + "id": "libvirt-73" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-invpcid-exit" + }, + "id": "libvirt-74" +} + +{ + "return": false, + "id": "libvirt-74" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "avx512ifma" + }, + "id": "libvirt-75" +} + +{ + "return": false, + "id": "libvirt-75" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "ibpb-brtype" + }, + "id": "libvirt-76" +} + +{ + "return": false, + "id": "libvirt-76" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "hv-evmcs" + }, + "id": "libvirt-77" +} + +{ + "return": false, + "id": "libvirt-77" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "srso-user-kernel-no" + }, + "id": "libvirt-78" +} + +{ + "return": false, + "id": "libvirt-78" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-io-exit" + }, + "id": "libvirt-79" +} + +{ + "return": false, + "id": "libvirt-79" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "tsc" + }, + "id": "libvirt-80" +} + +{ + "return": true, + "id": "libvirt-80" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "x-force-features" + }, + "id": "libvirt-81" +} + +{ + "return": false, + "id": "libvirt-81" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-ins-outs" + }, + "id": "libvirt-82" +} + +{ + "return": false, + "id": "libvirt-82" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "dca" + }, + "id": "libvirt-83" +} + +{ + "return": false, + "id": "libvirt-83" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-apicv-x2apic" + }, + "id": "libvirt-84" +} + +{ + "return": false, + "id": "libvirt-84" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "perfctr-core" + }, + "id": "libvirt-85" +} + +{ + "return": false, + "id": "libvirt-85" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "ia64" + }, + "id": "libvirt-86" +} + +{ + "return": false, + "id": "libvirt-86" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "fdp-excptn-only" + }, + "id": "libvirt-87" +} + +{ + "return": false, + "id": "libvirt-87" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "hv-stimer-direct" + }, + "id": "libvirt-88" +} + +{ + "return": false, + "id": "libvirt-88" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "gds-no" + }, + "id": "libvirt-89" +} + +{ + "return": false, + "id": "libvirt-89" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-exit-secondary-ctls" + }, + "id": "libvirt-90" +} + +{ + "return": false, + "id": "libvirt-90" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-cr3-load-noexit" + }, + "id": "libvirt-91" +} + +{ + "return": false, + "id": "libvirt-91" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "rfds-no" + }, + "id": "libvirt-92" +} + +{ + "return": false, + "id": "libvirt-92" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "pmu" + }, + "id": "libvirt-93" +} + +{ + "return": false, + "id": "libvirt-93" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-entry-load-rtit-ctl" + }, + "id": "libvirt-94" +} + +{ + "return": false, + "id": "libvirt-94" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "kvmclock" + }, + "id": "libvirt-95" +} + +{ + "return": true, + "id": "libvirt-95" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "avx10" + }, + "id": "libvirt-96" +} + +{ + "return": false, + "id": "libvirt-96" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-invept-single-context-noglobals" + }, + "id": "libvirt-97" +} + +{ + "return": false, + "id": "libvirt-97" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "xen-vapic" + }, + "id": "libvirt-98" +} + +{ + "return": false, + "id": "libvirt-98" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "md-clear" + }, + "id": "libvirt-99" +} + +{ + "return": false, + "id": "libvirt-99" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "invtsc" + }, + "id": "libvirt-100" +} + +{ + "return": false, + "id": "libvirt-100" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "pn" + }, + "id": "libvirt-101" +} + +{ + "return": false, + "id": "libvirt-101" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "avx512cd" + }, + "id": "libvirt-102" +} + +{ + "return": false, + "id": "libvirt-102" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "cmp-legacy" + }, + "id": "libvirt-103" +} + +{ + "return": false, + "id": "libvirt-103" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "cx16" + }, + "id": "libvirt-104" +} + +{ + "return": true, + "id": "libvirt-104" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "avx512dq" + }, + "id": "libvirt-105" +} + +{ + "return": false, + "id": "libvirt-105" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "abm" + }, + "id": "libvirt-106" +} + +{ + "return": true, + "id": "libvirt-106" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-activity-shutdown" + }, + "id": "libvirt-107" +} + +{ + "return": false, + "id": "libvirt-107" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "auto-ibrs" + }, + "id": "libvirt-108" +} + +{ + "return": false, + "id": "libvirt-108" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "kvm-pv-ipi" + }, + "id": "libvirt-109" +} + +{ + "return": false, + "id": "libvirt-109" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "avx10-128" + }, + "id": "libvirt-110" +} + +{ + "return": false, + "id": "libvirt-110" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-apicv-register" + }, + "id": "libvirt-111" +} + +{ + "return": false, + "id": "libvirt-111" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "fxsr-opt" + }, + "id": "libvirt-112" +} + +{ + "return": false, + "id": "libvirt-112" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "skip-l1dfl-vmentry" + }, + "id": "libvirt-113" +} + +{ + "return": false, + "id": "libvirt-113" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "fill-mtrr-mask" + }, + "id": "libvirt-114" +} + +{ + "return": true, + "id": "libvirt-114" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "x-migrate-smi-count" + }, + "id": "libvirt-115" +} + +{ + "return": true, + "id": "libvirt-115" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "wbnoinvd" + }, + "id": "libvirt-116" +} + +{ + "return": false, + "id": "libvirt-116" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "sgx1" + }, + "id": "libvirt-117" +} + +{ + "return": false, + "id": "libvirt-117" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "rdpid" + }, + "id": "libvirt-118" +} + +{ + "return": false, + "id": "libvirt-118" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "pcid" + }, + "id": "libvirt-119" +} + +{ + "return": true, + "id": "libvirt-119" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "bhi-ctrl" + }, + "id": "libvirt-120" +} + +{ + "return": false, + "id": "libvirt-120" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "syscall" + }, + "id": "libvirt-121" +} + +{ + "return": true, + "id": "libvirt-121" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "pse" + }, + "id": "libvirt-122" +} + +{ + "return": true, + "id": "libvirt-122" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "rrsba-ctrl" + }, + "id": "libvirt-123" +} + +{ + "return": false, + "id": "libvirt-123" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "avx-ne-convert" + }, + "id": "libvirt-124" +} + +{ + "return": false, + "id": "libvirt-124" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "xsaves" + }, + "id": "libvirt-125" +} + +{ + "return": true, + "id": "libvirt-125" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-entry-load-pat" + }, + "id": "libvirt-126" +} + +{ + "return": false, + "id": "libvirt-126" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vgif" + }, + "id": "libvirt-127" +} + +{ + "return": false, + "id": "libvirt-127" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "mce" + }, + "id": "libvirt-128" +} + +{ + "return": true, + "id": "libvirt-128" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "xfd" + }, + "id": "libvirt-129" +} + +{ + "return": false, + "id": "libvirt-129" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "sgx-tokenkey" + }, + "id": "libvirt-130" +} + +{ + "return": false, + "id": "libvirt-130" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "ibpb" + }, + "id": "libvirt-131" +} + +{ + "return": false, + "id": "libvirt-131" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "x-amd-topoext-features-only" + }, + "id": "libvirt-132" +} + +{ + "return": true, + "id": "libvirt-132" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-apicv-xapic" + }, + "id": "libvirt-133" +} + +{ + "return": false, + "id": "libvirt-133" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-hlt-exit" + }, + "id": "libvirt-134" +} + +{ + "return": false, + "id": "libvirt-134" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "lwp" + }, + "id": "libvirt-135" +} + +{ + "return": false, + "id": "libvirt-135" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "eraps" + }, + "id": "libvirt-136" +} + +{ + "return": false, + "id": "libvirt-136" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "cldemote" + }, + "id": "libvirt-137" +} + +{ + "return": false, + "id": "libvirt-137" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-exit-load-pkrs" + }, + "id": "libvirt-138" +} + +{ + "return": false, + "id": "libvirt-138" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "rtm" + }, + "id": "libvirt-139" +} + +{ + "return": false, + "id": "libvirt-139" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "hv-tlbflush" + }, + "id": "libvirt-140" +} + +{ + "return": false, + "id": "libvirt-140" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "kvm-steal-time" + }, + "id": "libvirt-141" +} + +{ + "return": true, + "id": "libvirt-141" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "cpuid-0xb" + }, + "id": "libvirt-142" +} + +{ + "return": true, + "id": "libvirt-142" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "fsrs" + }, + "id": "libvirt-143" +} + +{ + "return": false, + "id": "libvirt-143" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "sgx-provisionkey" + }, + "id": "libvirt-144" +} + +{ + "return": false, + "id": "libvirt-144" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-eptp-switching" + }, + "id": "libvirt-145" +} + +{ + "return": false, + "id": "libvirt-145" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-invlpg-exit" + }, + "id": "libvirt-146" +} + +{ + "return": false, + "id": "libvirt-146" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-entry-load-efer" + }, + "id": "libvirt-147" +} + +{ + "return": false, + "id": "libvirt-147" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-exit-save-efer" + }, + "id": "libvirt-148" +} + +{ + "return": false, + "id": "libvirt-148" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "x-l1-cache-per-thread" + }, + "id": "libvirt-149" +} + +{ + "return": true, + "id": "libvirt-149" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vme" + }, + "id": "libvirt-150" +} + +{ + "return": true, + "id": "libvirt-150" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "kvm-pv-unhalt" + }, + "id": "libvirt-151" +} + +{ + "return": false, + "id": "libvirt-151" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-desc-exit" + }, + "id": "libvirt-152" +} + +{ + "return": false, + "id": "libvirt-152" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "sgx-kss" + }, + "id": "libvirt-153" +} + +{ + "return": false, + "id": "libvirt-153" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-invvpid" + }, + "id": "libvirt-154" +} + +{ + "return": false, + "id": "libvirt-154" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-entry-ia32e-mode" + }, + "id": "libvirt-155" +} + +{ + "return": false, + "id": "libvirt-155" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "svm" + }, + "id": "libvirt-156" +} + +{ + "return": false, + "id": "libvirt-156" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "kvm-hint-dedicated" + }, + "id": "libvirt-157" +} + +{ + "return": false, + "id": "libvirt-157" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-ept-execonly" + }, + "id": "libvirt-158" +} + +{ + "return": false, + "id": "libvirt-158" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "avx-ifma" + }, + "id": "libvirt-159" +} + +{ + "return": false, + "id": "libvirt-159" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "mca" + }, + "id": "libvirt-160" +} + +{ + "return": true, + "id": "libvirt-160" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-tsc-scaling" + }, + "id": "libvirt-161" +} + +{ + "return": false, + "id": "libvirt-161" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "mtrr" + }, + "id": "libvirt-162" +} + +{ + "return": true, + "id": "libvirt-162" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "cid" + }, + "id": "libvirt-163" +} + +{ + "return": false, + "id": "libvirt-163" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "pfthreshold" + }, + "id": "libvirt-164" +} + +{ + "return": false, + "id": "libvirt-164" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "pmm" + }, + "id": "libvirt-165" +} + +{ + "return": false, + "id": "libvirt-165" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "lahf-lm" + }, + "id": "libvirt-166" +} + +{ + "return": true, + "id": "libvirt-166" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "zero-fcs-fds" + }, + "id": "libvirt-167" +} + +{ + "return": false, + "id": "libvirt-167" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-entry-load-pkrs" + }, + "id": "libvirt-168" +} + +{ + "return": false, + "id": "libvirt-168" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "tcg-cpuid" + }, + "id": "libvirt-169" +} + +{ + "return": true, + "id": "libvirt-169" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "no-nested-data-bp" + }, + "id": "libvirt-170" +} + +{ + "return": false, + "id": "libvirt-170" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "legacy-multi-node" + }, + "id": "libvirt-171" +} + +{ + "return": false, + "id": "libvirt-171" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "tm" + }, + "id": "libvirt-172" +} + +{ + "return": false, + "id": "libvirt-172" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "pbe" + }, + "id": "libvirt-173" +} + +{ + "return": false, + "id": "libvirt-173" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "amx-int8" + }, + "id": "libvirt-174" +} + +{ + "return": false, + "id": "libvirt-174" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-rdpmc-exit" + }, + "id": "libvirt-175" +} + +{ + "return": false, + "id": "libvirt-175" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "intel-psfd" + }, + "id": "libvirt-176" +} + +{ + "return": false, + "id": "libvirt-176" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "fs-gs-base-ns" + }, + "id": "libvirt-177" +} + +{ + "return": false, + "id": "libvirt-177" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "split-lock-detect" + }, + "id": "libvirt-178" +} + +{ + "return": false, + "id": "libvirt-178" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "fpu" + }, + "id": "libvirt-179" +} + +{ + "return": true, + "id": "libvirt-179" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "skinit" + }, + "id": "libvirt-180" +} + +{ + "return": false, + "id": "libvirt-180" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "l3-cache" + }, + "id": "libvirt-181" +} + +{ + "return": true, + "id": "libvirt-181" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "sep" + }, + "id": "libvirt-182" +} + +{ + "return": true, + "id": "libvirt-182" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-exit-load-pat" + }, + "id": "libvirt-183" +} + +{ + "return": false, + "id": "libvirt-183" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "intel-pt-lip" + }, + "id": "libvirt-184" +} + +{ + "return": false, + "id": "libvirt-184" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "avx10-512" + }, + "id": "libvirt-185" +} + +{ + "return": false, + "id": "libvirt-185" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "hv-tlbflush-direct" + }, + "id": "libvirt-186" +} + +{ + "return": false, + "id": "libvirt-186" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "avx512-bf16" + }, + "id": "libvirt-187" +} + +{ + "return": false, + "id": "libvirt-187" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "overflow-recov" + }, + "id": "libvirt-188" +} + +{ + "return": false, + "id": "libvirt-188" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-vnmi" + }, + "id": "libvirt-189" +} + +{ + "return": false, + "id": "libvirt-189" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-rdtscp-exit" + }, + "id": "libvirt-190" +} + +{ + "return": false, + "id": "libvirt-190" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "amx-complex" + }, + "id": "libvirt-191" +} + +{ + "return": false, + "id": "libvirt-191" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "nx" + }, + "id": "libvirt-192" +} + +{ + "return": true, + "id": "libvirt-192" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-invvpid-all-context" + }, + "id": "libvirt-193" +} + +{ + "return": false, + "id": "libvirt-193" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "avx-vnni-int8" + }, + "id": "libvirt-194" +} + +{ + "return": false, + "id": "libvirt-194" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-vmwrite-vmexit-fields" + }, + "id": "libvirt-195" +} + +{ + "return": false, + "id": "libvirt-195" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-page-walk-4" + }, + "id": "libvirt-196" +} + +{ + "return": false, + "id": "libvirt-196" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "rfds-clear" + }, + "id": "libvirt-197" +} + +{ + "return": false, + "id": "libvirt-197" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "pause-filter" + }, + "id": "libvirt-198" +} + +{ + "return": false, + "id": "libvirt-198" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "ds-cpl" + }, + "id": "libvirt-199" +} + +{ + "return": false, + "id": "libvirt-199" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "succor" + }, + "id": "libvirt-200" +} + +{ + "return": false, + "id": "libvirt-200" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "fred" + }, + "id": "libvirt-201" +} + +{ + "return": false, + "id": "libvirt-201" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "fsrm" + }, + "id": "libvirt-202" +} + +{ + "return": false, + "id": "libvirt-202" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-exit-load-efer" + }, + "id": "libvirt-203" +} + +{ + "return": false, + "id": "libvirt-203" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-mtf" + }, + "id": "libvirt-204" +} + +{ + "return": false, + "id": "libvirt-204" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-entry-load-fred" + }, + "id": "libvirt-205" +} + +{ + "return": false, + "id": "libvirt-205" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-ept" + }, + "id": "libvirt-206" +} + +{ + "return": false, + "id": "libvirt-206" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "fb-clear" + }, + "id": "libvirt-207" +} + +{ + "return": false, + "id": "libvirt-207" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "nodeid-msr" + }, + "id": "libvirt-208" +} + +{ + "return": false, + "id": "libvirt-208" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-exit-clear-bndcfgs" + }, + "id": "libvirt-209" +} + +{ + "return": false, + "id": "libvirt-209" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "smap" + }, + "id": "libvirt-210" +} + +{ + "return": true, + "id": "libvirt-210" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-io-bitmap" + }, + "id": "libvirt-211" +} + +{ + "return": false, + "id": "libvirt-211" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-preemption-timer" + }, + "id": "libvirt-212" +} + +{ + "return": false, + "id": "libvirt-212" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-invept-all-context" + }, + "id": "libvirt-213" +} + +{ + "return": false, + "id": "libvirt-213" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-intr-exit" + }, + "id": "libvirt-214" +} + +{ + "return": false, + "id": "libvirt-214" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "prefetchiti" + }, + "id": "libvirt-215" +} + +{ + "return": false, + "id": "libvirt-215" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "psdp-no" + }, + "id": "libvirt-216" +} + +{ + "return": false, + "id": "libvirt-216" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "cr8legacy" + }, + "id": "libvirt-217" +} + +{ + "return": false, + "id": "libvirt-217" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-vpid" + }, + "id": "libvirt-218" +} + +{ + "return": false, + "id": "libvirt-218" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-zero-len-inject" + }, + "id": "libvirt-219" +} + +{ + "return": false, + "id": "libvirt-219" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "pschange-mc-no" + }, + "id": "libvirt-220" +} + +{ + "return": false, + "id": "libvirt-220" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "virt-ssbd" + }, + "id": "libvirt-221" +} + +{ + "return": false, + "id": "libvirt-221" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "umip" + }, + "id": "libvirt-222" +} + +{ + "return": false, + "id": "libvirt-222" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "avx512er" + }, + "id": "libvirt-223" +} + +{ + "return": false, + "id": "libvirt-223" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-vintr-pending" + }, + "id": "libvirt-224" +} + +{ + "return": false, + "id": "libvirt-224" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "xstore-en" + }, + "id": "libvirt-225" +} + +{ + "return": false, + "id": "libvirt-225" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "avx512vl" + }, + "id": "libvirt-226" +} + +{ + "return": false, + "id": "libvirt-226" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "ibrs" + }, + "id": "libvirt-227" +} + +{ + "return": false, + "id": "libvirt-227" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "rsba" + }, + "id": "libvirt-228" +} + +{ + "return": false, + "id": "libvirt-228" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "cmov" + }, + "id": "libvirt-229" +} + +{ + "return": true, + "id": "libvirt-229" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-posted-intr" + }, + "id": "libvirt-230" +} + +{ + "return": false, + "id": "libvirt-230" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "xcrypt-en" + }, + "id": "libvirt-231" +} + +{ + "return": false, + "id": "libvirt-231" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "tm2" + }, + "id": "libvirt-232" +} + +{ + "return": false, + "id": "libvirt-232" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "lbrv" + }, + "id": "libvirt-233" +} + +{ + "return": false, + "id": "libvirt-233" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "tsc-scale" + }, + "id": "libvirt-234" +} + +{ + "return": false, + "id": "libvirt-234" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-secondary-ctls" + }, + "id": "libvirt-235" +} + +{ + "return": false, + "id": "libvirt-235" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "xsaveerptr" + }, + "id": "libvirt-236" +} + +{ + "return": false, + "id": "libvirt-236" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "fsgsbase" + }, + "id": "libvirt-237" +} + +{ + "return": true, + "id": "libvirt-237" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "x-hv-synic-kvm-only" + }, + "id": "libvirt-238" +} + +{ + "return": false, + "id": "libvirt-238" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "avx512bw" + }, + "id": "libvirt-239" +} + +{ + "return": false, + "id": "libvirt-239" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "tce" + }, + "id": "libvirt-240" +} + +{ + "return": false, + "id": "libvirt-240" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "smx" + }, + "id": "libvirt-241" +} + +{ + "return": false, + "id": "libvirt-241" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "hle" + }, + "id": "libvirt-242" +} + +{ + "return": false, + "id": "libvirt-242" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "monitor" + }, + "id": "libvirt-243" +} + +{ + "return": false, + "id": "libvirt-243" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "avx512-fp16" + }, + "id": "libvirt-244" +} + +{ + "return": false, + "id": "libvirt-244" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "sse4a" + }, + "id": "libvirt-245" +} + +{ + "return": false, + "id": "libvirt-245" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vpclmulqdq" + }, + "id": "libvirt-246" +} + +{ + "return": false, + "id": "libvirt-246" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "hv-frequencies" + }, + "id": "libvirt-247" +} + +{ + "return": false, + "id": "libvirt-247" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "kvm-pv-tlb-flush" + }, + "id": "libvirt-248" +} + +{ + "return": false, + "id": "libvirt-248" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-rdtsc-exit" + }, + "id": "libvirt-249" +} + +{ + "return": false, + "id": "libvirt-249" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-activity-hlt" + }, + "id": "libvirt-250" +} + +{ + "return": false, + "id": "libvirt-250" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-entry-load-bndcfgs" + }, + "id": "libvirt-251" +} + +{ + "return": false, + "id": "libvirt-251" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "sgx-edeccssa" + }, + "id": "libvirt-252" +} + +{ + "return": false, + "id": "libvirt-252" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "xsavec" + }, + "id": "libvirt-253" +} + +{ + "return": true, + "id": "libvirt-253" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-cr8-load-exit" + }, + "id": "libvirt-254" +} + +{ + "return": false, + "id": "libvirt-254" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "mds-no" + }, + "id": "libvirt-255" +} + +{ + "return": false, + "id": "libvirt-255" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "svme-addr-chk" + }, + "id": "libvirt-256" +} + +{ + "return": false, + "id": "libvirt-256" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "amd-no-ssb" + }, + "id": "libvirt-257" +} + +{ + "return": false, + "id": "libvirt-257" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "xop" + }, + "id": "libvirt-258" +} + +{ + "return": false, + "id": "libvirt-258" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "adx" + }, + "id": "libvirt-259" +} + +{ + "return": true, + "id": "libvirt-259" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "perfmon-v2" + }, + "id": "libvirt-260" +} + +{ + "return": false, + "id": "libvirt-260" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "full-cpuid-auto-level" + }, + "id": "libvirt-261" +} + +{ + "return": true, + "id": "libvirt-261" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-exit-ack-intr" + }, + "id": "libvirt-262" +} + +{ + "return": false, + "id": "libvirt-262" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-rdseed-exit" + }, + "id": "libvirt-263" +} + +{ + "return": false, + "id": "libvirt-263" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "pclmulqdq" + }, + "id": "libvirt-264" +} + +{ + "return": true, + "id": "libvirt-264" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "msr" + }, + "id": "libvirt-265" +} + +{ + "return": true, + "id": "libvirt-265" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "wrmsrns" + }, + "id": "libvirt-266" +} + +{ + "return": false, + "id": "libvirt-266" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "kvm-pv-enforce-cpuid" + }, + "id": "libvirt-267" +} + +{ + "return": false, + "id": "libvirt-267" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "ssb-no" + }, + "id": "libvirt-268" +} + +{ + "return": false, + "id": "libvirt-268" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "clflush" + }, + "id": "libvirt-269" +} + +{ + "return": true, + "id": "libvirt-269" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "mpx" + }, + "id": "libvirt-270" +} + +{ + "return": false, + "id": "libvirt-270" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "extapic" + }, + "id": "libvirt-271" +} + +{ + "return": false, + "id": "libvirt-271" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "lfence-always-serializing" + }, + "id": "libvirt-272" +} + +{ + "return": false, + "id": "libvirt-272" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "hv-enforce-cpuid" + }, + "id": "libvirt-273" +} + +{ + "return": false, + "id": "libvirt-273" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "hv-stimer" + }, + "id": "libvirt-274" +} + +{ + "return": false, + "id": "libvirt-274" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "sgx2" + }, + "id": "libvirt-275" +} + +{ + "return": false, + "id": "libvirt-275" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "kvm-asyncpf-vmexit" + }, + "id": "libvirt-276" +} + +{ + "return": false, + "id": "libvirt-276" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "smep" + }, + "id": "libvirt-277" +} + +{ + "return": true, + "id": "libvirt-277" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vnmi" + }, + "id": "libvirt-278" +} + +{ + "return": false, + "id": "libvirt-278" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-mwait-exit" + }, + "id": "libvirt-279" +} + +{ + "return": false, + "id": "libvirt-279" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "hv-synic" + }, + "id": "libvirt-280" +} + +{ + "return": false, + "id": "libvirt-280" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "cx8" + }, + "id": "libvirt-281" +} + +{ + "return": true, + "id": "libvirt-281" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmcb-clean" + }, + "id": "libvirt-282" +} + +{ + "return": false, + "id": "libvirt-282" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "pku" + }, + "id": "libvirt-283" +} + +{ + "return": false, + "id": "libvirt-283" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "kvm" + }, + "id": "libvirt-284" +} + +{ + "return": true, + "id": "libvirt-284" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "srso-no" + }, + "id": "libvirt-285" +} + +{ + "return": false, + "id": "libvirt-285" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "hv-passthrough" + }, + "id": "libvirt-286" +} + +{ + "return": false, + "id": "libvirt-286" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "lkgs" + }, + "id": "libvirt-287" +} + +{ + "return": false, + "id": "libvirt-287" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "tsx-ldtrk" + }, + "id": "libvirt-288" +} + +{ + "return": false, + "id": "libvirt-288" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "hv-tlbflush-ext" + }, + "id": "libvirt-289" +} + +{ + "return": false, + "id": "libvirt-289" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "stibp" + }, + "id": "libvirt-290" +} + +{ + "return": false, + "id": "libvirt-290" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-cr3-store-noexit" + }, + "id": "libvirt-291" +} + +{ + "return": false, + "id": "libvirt-291" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "tsx-ctrl" + }, + "id": "libvirt-292" +} + +{ + "return": false, + "id": "libvirt-292" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "clzero" + }, + "id": "libvirt-293" +} + +{ + "return": false, + "id": "libvirt-293" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "svm-lock" + }, + "id": "libvirt-294" +} + +{ + "return": false, + "id": "libvirt-294" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "hv-reenlightenment" + }, + "id": "libvirt-295" +} + +{ + "return": false, + "id": "libvirt-295" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "x-consistent-cache" + }, + "id": "libvirt-296" +} + +{ + "return": false, + "id": "libvirt-296" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "avic" + }, + "id": "libvirt-297" +} + +{ + "return": false, + "id": "libvirt-297" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "hv-vpindex" + }, + "id": "libvirt-298" +} + +{ + "return": false, + "id": "libvirt-298" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "osvw" + }, + "id": "libvirt-299" +} + +{ + "return": false, + "id": "libvirt-299" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "sgx-exinfo" + }, + "id": "libvirt-300" +} + +{ + "return": false, + "id": "libvirt-300" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "legacy-cache" + }, + "id": "libvirt-301" +} + +{ + "return": true, + "id": "libvirt-301" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "sse" + }, + "id": "libvirt-302" +} + +{ + "return": true, + "id": "libvirt-302" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "fsrc" + }, + "id": "libvirt-303" +} + +{ + "return": false, + "id": "libvirt-303" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "ds" + }, + "id": "libvirt-304" +} + +{ + "return": false, + "id": "libvirt-304" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "pks" + }, + "id": "libvirt-305" +} + +{ + "return": false, + "id": "libvirt-305" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-ept-2mb" + }, + "id": "libvirt-306" +} + +{ + "return": false, + "id": "libvirt-306" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-true-ctls" + }, + "id": "libvirt-307" +} + +{ + "return": false, + "id": "libvirt-307" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "movdir64b" + }, + "id": "libvirt-308" +} + +{ + "return": false, + "id": "libvirt-308" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-ept-1gb" + }, + "id": "libvirt-309" +} + +{ + "return": false, + "id": "libvirt-309" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-invept" + }, + "id": "libvirt-310" +} + +{ + "return": false, + "id": "libvirt-310" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "ipred-ctrl" + }, + "id": "libvirt-311" +} + +{ + "return": false, + "id": "libvirt-311" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-rdrand-exit" + }, + "id": "libvirt-312" +} + +{ + "return": false, + "id": "libvirt-312" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "acpi" + }, + "id": "libvirt-313" +} + +{ + "return": false, + "id": "libvirt-313" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-encls-exit" + }, + "id": "libvirt-314" +} + +{ + "return": false, + "id": "libvirt-314" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-cr8-store-exit" + }, + "id": "libvirt-315" +} + +{ + "return": false, + "id": "libvirt-315" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "sbdr-ssdp-no" + }, + "id": "libvirt-316" +} + +{ + "return": false, + "id": "libvirt-316" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "its-no" + }, + "id": "libvirt-317" +} + +{ + "return": false, + "id": "libvirt-317" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "kvm-mmu" + }, + "id": "libvirt-318" +} + +{ + "return": false, + "id": "libvirt-318" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "3dnowprefetch" + }, + "id": "libvirt-319" +} + +{ + "return": true, + "id": "libvirt-319" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "nrip-save" + }, + "id": "libvirt-320" +} + +{ + "return": false, + "id": "libvirt-320" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "gfni" + }, + "id": "libvirt-321" +} + +{ + "return": false, + "id": "libvirt-321" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "flush-l1d" + }, + "id": "libvirt-322" +} + +{ + "return": false, + "id": "libvirt-322" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "kvm-msi-ext-dest-id" + }, + "id": "libvirt-323" +} + +{ + "return": false, + "id": "libvirt-323" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "fzrm" + }, + "id": "libvirt-324" +} + +{ + "return": false, + "id": "libvirt-324" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "serialize" + }, + "id": "libvirt-325" +} + +{ + "return": false, + "id": "libvirt-325" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "avx512bitalg" + }, + "id": "libvirt-326" +} + +{ + "return": false, + "id": "libvirt-326" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "rdseed" + }, + "id": "libvirt-327" +} + +{ + "return": true, + "id": "libvirt-327" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "sha-ni" + }, + "id": "libvirt-328" +} + +{ + "return": false, + "id": "libvirt-328" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "ace2" + }, + "id": "libvirt-329" +} + +{ + "return": false, + "id": "libvirt-329" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "lmce" + }, + "id": "libvirt-330" +} + +{ + "return": false, + "id": "libvirt-330" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "topoext" + }, + "id": "libvirt-331" +} + +{ + "return": false, + "id": "libvirt-331" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "f16c" + }, + "id": "libvirt-332" +} + +{ + "return": true, + "id": "libvirt-332" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "waitpkg" + }, + "id": "libvirt-333" +} + +{ + "return": false, + "id": "libvirt-333" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "avx512-4fmaps" + }, + "id": "libvirt-334" +} + +{ + "return": false, + "id": "libvirt-334" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "fbsdp-no" + }, + "id": "libvirt-335" +} + +{ + "return": false, + "id": "libvirt-335" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "avx" + }, + "id": "libvirt-336" +} + +{ + "return": true, + "id": "libvirt-336" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "sse2" + }, + "id": "libvirt-337" +} + +{ + "return": true, + "id": "libvirt-337" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "rdctl-no" + }, + "id": "libvirt-338" +} + +{ + "return": false, + "id": "libvirt-338" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "mmx" + }, + "id": "libvirt-339" +} + +{ + "return": true, + "id": "libvirt-339" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "avx512vnni" + }, + "id": "libvirt-340" +} + +{ + "return": false, + "id": "libvirt-340" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "pni" + }, + "id": "libvirt-341" +} + +{ + "return": true, + "id": "libvirt-341" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "movbe" + }, + "id": "libvirt-342" +} + +{ + "return": true, + "id": "libvirt-342" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-ple" + }, + "id": "libvirt-343" +} + +{ + "return": false, + "id": "libvirt-343" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "mmxext" + }, + "id": "libvirt-344" +} + +{ + "return": false, + "id": "libvirt-344" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "bus-lock-detect" + }, + "id": "libvirt-345" +} + +{ + "return": false, + "id": "libvirt-345" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-apicv-vid" + }, + "id": "libvirt-346" +} + +{ + "return": false, + "id": "libvirt-346" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-page-walk-5" + }, + "id": "libvirt-347" +} + +{ + "return": false, + "id": "libvirt-347" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "flushbyasid" + }, + "id": "libvirt-348" +} + +{ + "return": false, + "id": "libvirt-348" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "rdtscp" + }, + "id": "libvirt-349" +} + +{ + "return": true, + "id": "libvirt-349" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "clwb" + }, + "id": "libvirt-350" +} + +{ + "return": false, + "id": "libvirt-350" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "kvm-pv-sched-yield" + }, + "id": "libvirt-351" +} + +{ + "return": false, + "id": "libvirt-351" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "kvm-asyncpf" + }, + "id": "libvirt-352" +} + +{ + "return": true, + "id": "libvirt-352" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "avx-vnni-int16" + }, + "id": "libvirt-353" +} + +{ + "return": false, + "id": "libvirt-353" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "decodeassists" + }, + "id": "libvirt-354" +} + +{ + "return": false, + "id": "libvirt-354" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-wbinvd-exit" + }, + "id": "libvirt-355" +} + +{ + "return": false, + "id": "libvirt-355" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "pat" + }, + "id": "libvirt-356" +} + +{ + "return": true, + "id": "libvirt-356" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-exit-clear-rtit-ctl" + }, + "id": "libvirt-357" +} + +{ + "return": false, + "id": "libvirt-357" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "invpcid" + }, + "id": "libvirt-358" +} + +{ + "return": true, + "id": "libvirt-358" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "pdpe1gb" + }, + "id": "libvirt-359" +} + +{ + "return": false, + "id": "libvirt-359" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-exit-save-pat" + }, + "id": "libvirt-360" +} + +{ + "return": false, + "id": "libvirt-360" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "tsc-adjust" + }, + "id": "libvirt-361" +} + +{ + "return": false, + "id": "libvirt-361" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-enable-user-wait-pause" + }, + "id": "libvirt-362" +} + +{ + "return": false, + "id": "libvirt-362" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "ht" + }, + "id": "libvirt-363" +} + +{ + "return": false, + "id": "libvirt-363" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "amx-tile" + }, + "id": "libvirt-364" +} + +{ + "return": false, + "id": "libvirt-364" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "clflushopt" + }, + "id": "libvirt-365" +} + +{ + "return": false, + "id": "libvirt-365" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "hv-xmm-input" + }, + "id": "libvirt-366" +} + +{ + "return": false, + "id": "libvirt-366" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-tsc-offset" + }, + "id": "libvirt-367" +} + +{ + "return": false, + "id": "libvirt-367" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "ssbd" + }, + "id": "libvirt-368" +} + +{ + "return": false, + "id": "libvirt-368" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "3dnowext" + }, + "id": "libvirt-369" +} + +{ + "return": false, + "id": "libvirt-369" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "xtpr" + }, + "id": "libvirt-370" +} + +{ + "return": false, + "id": "libvirt-370" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "sgx" + }, + "id": "libvirt-371" +} + +{ + "return": false, + "id": "libvirt-371" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "hv-crash" + }, + "id": "libvirt-372" +} + +{ + "return": false, + "id": "libvirt-372" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "xsave" + }, + "id": "libvirt-373" +} + +{ + "return": true, + "id": "libvirt-373" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "pdcm" + }, + "id": "libvirt-374" +} + +{ + "return": false, + "id": "libvirt-374" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "est" + }, + "id": "libvirt-375" +} + +{ + "return": false, + "id": "libvirt-375" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "pge" + }, + "id": "libvirt-376" +} + +{ + "return": true, + "id": "libvirt-376" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "pcommit" + }, + "id": "libvirt-377" +} + +{ + "return": false, + "id": "libvirt-377" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "ibs" + }, + "id": "libvirt-378" +} + +{ + "return": false, + "id": "libvirt-378" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "tsc-deadline" + }, + "id": "libvirt-379" +} + +{ + "return": true, + "id": "libvirt-379" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "sgx-mode64" + }, + "id": "libvirt-380" +} + +{ + "return": false, + "id": "libvirt-380" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "kvmclock-stable-bit" + }, + "id": "libvirt-381" +} + +{ + "return": true, + "id": "libvirt-381" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "misalignsse" + }, + "id": "libvirt-382" +} + +{ + "return": false, + "id": "libvirt-382" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-msr-bitmap" + }, + "id": "libvirt-383" +} + +{ + "return": false, + "id": "libvirt-383" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "check" + }, + "id": "libvirt-384" +} + +{ + "return": true, + "id": "libvirt-384" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "hv-time" + }, + "id": "libvirt-385" +} + +{ + "return": false, + "id": "libvirt-385" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "perfctr-nb" + }, + "id": "libvirt-386" +} + +{ + "return": false, + "id": "libvirt-386" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "hv-avic" + }, + "id": "libvirt-387" +} + +{ + "return": false, + "id": "libvirt-387" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-vmfunc" + }, + "id": "libvirt-388" +} + +{ + "return": false, + "id": "libvirt-388" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "apic" + }, + "id": "libvirt-389" +} + +{ + "return": true, + "id": "libvirt-389" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-exit-save-preemption-timer" + }, + "id": "libvirt-390" +} + +{ + "return": false, + "id": "libvirt-390" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "prefetchi" + }, + "id": "libvirt-391" +} + +{ + "return": false, + "id": "libvirt-391" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-nmi-exit" + }, + "id": "libvirt-392" +} + +{ + "return": false, + "id": "libvirt-392" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "avx512vbmi" + }, + "id": "libvirt-393" +} + +{ + "return": false, + "id": "libvirt-393" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-exit-nosave-debugctl" + }, + "id": "libvirt-394" +} + +{ + "return": false, + "id": "libvirt-394" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "bmi2" + }, + "id": "libvirt-395" +} + +{ + "return": true, + "id": "libvirt-395" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-xsaves" + }, + "id": "libvirt-396" +} + +{ + "return": false, + "id": "libvirt-396" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "avx512f" + }, + "id": "libvirt-397" +} + +{ + "return": false, + "id": "libvirt-397" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "arch-capabilities" + }, + "id": "libvirt-398" +} + +{ + "return": false, + "id": "libvirt-398" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-exit-load-perf-global-ctrl" + }, + "id": "libvirt-399" +} + +{ + "return": false, + "id": "libvirt-399" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-pml" + }, + "id": "libvirt-400" +} + +{ + "return": false, + "id": "libvirt-400" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-entry-load-perf-global-ctrl" + }, + "id": "libvirt-401" +} + +{ + "return": false, + "id": "libvirt-401" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "ace2-en" + }, + "id": "libvirt-402" +} + +{ + "return": false, + "id": "libvirt-402" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "wdt" + }, + "id": "libvirt-403" +} + +{ + "return": false, + "id": "libvirt-403" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "intel-pt" + }, + "id": "libvirt-404" +} + +{ + "return": false, + "id": "libvirt-404" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "kvm-nopiodelay" + }, + "id": "libvirt-405" +} + +{ + "return": true, + "id": "libvirt-405" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "cmpccxadd" + }, + "id": "libvirt-406" +} + +{ + "return": false, + "id": "libvirt-406" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "v-vmsave-vmload" + }, + "id": "libvirt-407" +} + +{ + "return": false, + "id": "libvirt-407" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "avx512pf" + }, + "id": "libvirt-408" +} + +{ + "return": false, + "id": "libvirt-408" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "bmi1" + }, + "id": "libvirt-409" +} + +{ + "return": true, + "id": "libvirt-409" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "enforce" + }, + "id": "libvirt-410" +} + +{ + "return": false, + "id": "libvirt-410" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "sse4.2" + }, + "id": "libvirt-411" +} + +{ + "return": true, + "id": "libvirt-411" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "hv-syndbg" + }, + "id": "libvirt-412" +} + +{ + "return": false, + "id": "libvirt-412" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "ibrs-all" + }, + "id": "libvirt-413" +} + +{ + "return": false, + "id": "libvirt-413" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "xgetbv1" + }, + "id": "libvirt-414" +} + +{ + "return": true, + "id": "libvirt-414" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "mcdt-no" + }, + "id": "libvirt-415" +} + +{ + "return": false, + "id": "libvirt-415" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "spec-ctrl" + }, + "id": "libvirt-416" +} + +{ + "return": true, + "id": "libvirt-416" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "3dnow" + }, + "id": "libvirt-417" +} + +{ + "return": false, + "id": "libvirt-417" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "kvm-asyncpf-int" + }, + "id": "libvirt-418" +} + +{ + "return": false, + "id": "libvirt-418" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx" + }, + "id": "libvirt-419" +} + +{ + "return": false, + "id": "libvirt-419" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "la57" + }, + "id": "libvirt-420" +} + +{ + "return": false, + "id": "libvirt-420" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "amx-bf16" + }, + "id": "libvirt-421" +} + +{ + "return": false, + "id": "libvirt-421" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "sse4.1" + }, + "id": "libvirt-422" +} + +{ + "return": true, + "id": "libvirt-422" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "xsaveopt" + }, + "id": "libvirt-423" +} + +{ + "return": true, + "id": "libvirt-423" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "hv-relaxed" + }, + "id": "libvirt-424" +} + +{ + "return": false, + "id": "libvirt-424" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "stibp-always-on" + }, + "id": "libvirt-425" +} + +{ + "return": false, + "id": "libvirt-425" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "sbpb" + }, + "id": "libvirt-426" +} + +{ + "return": false, + "id": "libvirt-426" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "avx-vnni" + }, + "id": "libvirt-427" +} + +{ + "return": false, + "id": "libvirt-427" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "fxsr" + }, + "id": "libvirt-428" +} + +{ + "return": true, + "id": "libvirt-428" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "phe-en" + }, + "id": "libvirt-429" +} + +{ + "return": false, + "id": "libvirt-429" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "hv-vapic" + }, + "id": "libvirt-430" +} + +{ + "return": false, + "id": "libvirt-430" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "hv-ipi" + }, + "id": "libvirt-431" +} + +{ + "return": false, + "id": "libvirt-431" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "null-sel-clr-base" + }, + "id": "libvirt-432" +} + +{ + "return": false, + "id": "libvirt-432" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "hypervisor" + }, + "id": "libvirt-433" +} + +{ + "return": true, + "id": "libvirt-433" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "avx10-256" + }, + "id": "libvirt-434" +} + +{ + "return": false, + "id": "libvirt-434" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "aes" + }, + "id": "libvirt-435" +} + +{ + "return": true, + "id": "libvirt-435" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "amd-ssbd" + }, + "id": "libvirt-436" +} + +{ + "return": false, + "id": "libvirt-436" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "de" + }, + "id": "libvirt-437" +} + +{ + "return": true, + "id": "libvirt-437" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "ss" + }, + "id": "libvirt-438" +} + +{ + "return": false, + "id": "libvirt-438" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmx-movdr-exit" + }, + "id": "libvirt-439" +} + +{ + "return": false, + "id": "libvirt-439" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "fma" + }, + "id": "libvirt-440" +} + +{ + "return": true, + "id": "libvirt-440" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "lahf_lm" + }, + "id": "libvirt-441" +} + +{ + "return": true, + "id": "libvirt-441" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "tsc_adjust" + }, + "id": "libvirt-442" +} + +{ + "return": false, + "id": "libvirt-442" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "svm_lock" + }, + "id": "libvirt-443" +} + +{ + "return": false, + "id": "libvirt-443" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "vmcb_clean" + }, + "id": "libvirt-444" +} + +{ + "return": false, + "id": "libvirt-444" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "nrip_save" + }, + "id": "libvirt-445" +} + +{ + "return": false, + "id": "libvirt-445" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "pclmuldq" + }, + "id": "libvirt-446" +} + +{ + "return": true, + "id": "libvirt-446" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "ffxsr" + }, + "id": "libvirt-447" +} + +{ + "return": false, + "id": "libvirt-447" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "sse4-2" + }, + "id": "libvirt-448" +} + +{ + "return": true, + "id": "libvirt-448" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "kvm_asyncpf_int" + }, + "id": "libvirt-449" +} + +{ + "return": false, + "id": "libvirt-449" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "cmp_legacy" + }, + "id": "libvirt-450" +} + +{ + "return": false, + "id": "libvirt-450" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "kvm_nopiodelay" + }, + "id": "libvirt-451" +} + +{ + "return": true, + "id": "libvirt-451" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "perfctr_core" + }, + "id": "libvirt-452" +} + +{ + "return": false, + "id": "libvirt-452" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "kvm_pv_unhalt" + }, + "id": "libvirt-453" +} + +{ + "return": false, + "id": "libvirt-453" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "ds_cpl" + }, + "id": "libvirt-454" +} + +{ + "return": false, + "id": "libvirt-454" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "sse4-1" + }, + "id": "libvirt-455" +} + +{ + "return": true, + "id": "libvirt-455" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "perfctr_nb" + }, + "id": "libvirt-456" +} + +{ + "return": false, + "id": "libvirt-456" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "sse3" + }, + "id": "libvirt-457" +} + +{ + "return": true, + "id": "libvirt-457" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "tsc_scale" + }, + "id": "libvirt-458" +} + +{ + "return": false, + "id": "libvirt-458" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "pause_filter" + }, + "id": "libvirt-459" +} + +{ + "return": false, + "id": "libvirt-459" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "kvm_asyncpf" + }, + "id": "libvirt-460" +} + +{ + "return": true, + "id": "libvirt-460" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "kvm_steal_time" + }, + "id": "libvirt-461" +} + +{ + "return": true, + "id": "libvirt-461" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "kvm_mmu" + }, + "id": "libvirt-462" +} + +{ + "return": false, + "id": "libvirt-462" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "sse4_2" + }, + "id": "libvirt-463" +} + +{ + "return": true, + "id": "libvirt-463" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "kvm_poll_control" + }, + "id": "libvirt-464" +} + +{ + "return": false, + "id": "libvirt-464" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "fxsr_opt" + }, + "id": "libvirt-465" +} + +{ + "return": false, + "id": "libvirt-465" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "nodeid_msr" + }, + "id": "libvirt-466" +} + +{ + "return": false, + "id": "libvirt-466" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "kvm_pv_eoi" + }, + "id": "libvirt-467" +} + +{ + "return": true, + "id": "libvirt-467" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "i64" + }, + "id": "libvirt-468" +} + +{ + "return": true, + "id": "libvirt-468" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "hv-apicv" + }, + "id": "libvirt-469" +} + +{ + "return": false, + "id": "libvirt-469" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "xd" + }, + "id": "libvirt-470" +} + +{ + "return": true, + "id": "libvirt-470" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "sse4_1" + }, + "id": "libvirt-471" +} + +{ + "return": true, + "id": "libvirt-471" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "unavailable-features" + }, + "id": "libvirt-472" +} + +{ + "return": [], + "id": "libvirt-472" +} diff --git a/tests/qemumonitorjsontest.c b/tests/qemumonitorjsontest.c index 7d81493963..c3e83fc728 100644 --- a/tests/qemumonitorjsontest.c +++ b/tests/qemumonitorjsontest.c @@ -2985,6 +2985,7 @@ mymain(void) DO_TEST_CPU_INFO("s390", 2); DO_TEST_GET_GUEST_CPU("SierraForest"); + DO_TEST_GET_GUEST_CPU("SkylakeClient"); #define DO_TEST_QAPI_QUERY(nme, qry, scc, rplobj) \ -- 2.51.0

On Thu, Sep 04, 2025 at 16:46:51 +0200, Jiri Denemark via Devel wrote:
From: Jiri Denemark <jdenemar@redhat.com>
The key point here is that the unavailable-features property reports an empty array.
Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- .../get-guest-cpu-SkylakeClient-disabled.xml | 2 + .../get-guest-cpu-SkylakeClient-enabled.xml | 7 + .../get-guest-cpu-SkylakeClient.json | 8671 +++++++++++++++++ tests/qemumonitorjsontest.c | 1 + 4 files changed, 8681 insertions(+) create mode 100644 tests/qemumonitorjsondata/get-guest-cpu-SkylakeClient-disabled.xml create mode 100644 tests/qemumonitorjsondata/get-guest-cpu-SkylakeClient-enabled.xml create mode 100644 tests/qemumonitorjsondata/get-guest-cpu-SkylakeClient.json
Reviewed-by: Peter Krempa <pkrempa@redhat.com>

From: Jiri Denemark <jdenemar@redhat.com> qemuMonitorJSONParsePropsList supported filtering based on type. Let's replace it with a callback supplied by the caller to allow for more advanced filtering. Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- src/qemu/qemu_monitor_json.c | 51 +++++++++++++++++++++++++++++------- 1 file changed, 41 insertions(+), 10 deletions(-) diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c index 6402d18d37..0c78115e9d 100644 --- a/src/qemu/qemu_monitor_json.c +++ b/src/qemu/qemu_monitor_json.c @@ -5837,10 +5837,21 @@ int qemuMonitorJSONSetObjectProperty(qemuMonitor *mon, #undef MAKE_SET_CMD +/* A filter callback for qemuMonitorJSONParsePropsList. + * + * Returns 0 if the property should be included in the list, + * 1 if the property should be ignored, + * -1 on error. + */ +typedef int (*qemuMonitorJSONPropsListFilter)(const char *name, + virJSONValue *propData, + void *data); + static int qemuMonitorJSONParsePropsList(virJSONValue *cmd, virJSONValue *reply, - const char *type, + qemuMonitorJSONPropsListFilter propFilter, + void *filterData, char ***props) { virJSONValue *data; @@ -5859,19 +5870,25 @@ qemuMonitorJSONParsePropsList(virJSONValue *cmd, for (i = 0; i < n; i++) { virJSONValue *child = virJSONValueArrayGet(data, i); - const char *tmp; + const char *name = virJSONValueObjectGetString(child, "name"); - if (type && - STRNEQ_NULLABLE(virJSONValueObjectGetString(child, "type"), type)) - continue; - - if (!(tmp = virJSONValueObjectGetString(child, "name"))) { + if (!name) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("reply data was missing 'name'")); return -1; } - proplist[count++] = g_strdup(tmp); + if (propFilter) { + int rc = propFilter(name, child, filterData); + + if (rc < 0) + return -1; + + if (rc != 0) + continue; + } + + proplist[count++] = g_strdup(name); } *props = g_steal_pointer(&proplist); @@ -5954,7 +5971,7 @@ qemuMonitorJSONGetObjectProps(qemuMonitor *mon, if (qemuMonitorJSONHasError(reply, "DeviceNotFound")) return 0; - return qemuMonitorJSONParsePropsList(cmd, reply, NULL, props); + return qemuMonitorJSONParsePropsList(cmd, reply, NULL, NULL, props); } @@ -6578,6 +6595,18 @@ qemuMonitorJSONGetDeviceAliases(qemuMonitor *mon, } +static int +qemuMonitorJSONCPUPropsFilter(const char *name G_GNUC_UNUSED, + virJSONValue *propData, + void *data G_GNUC_UNUSED) +{ + if (STRNEQ_NULLABLE(virJSONValueObjectGetString(propData, "type"), "bool")) + return 1; + + return 0; +} + + static int qemuMonitorJSONGetCPUProperties(qemuMonitor *mon, const char *cpuQOMPath, @@ -6599,7 +6628,9 @@ qemuMonitorJSONGetCPUProperties(qemuMonitor *mon, if (qemuMonitorJSONHasError(reply, "DeviceNotFound")) return 0; - return qemuMonitorJSONParsePropsList(cmd, reply, "bool", props); + return qemuMonitorJSONParsePropsList(cmd, reply, + qemuMonitorJSONCPUPropsFilter, NULL, + props); } -- 2.51.0

On a Thursday in 2025, Jiri Denemark via Devel wrote:
From: Jiri Denemark <jdenemar@redhat.com>
qemuMonitorJSONParsePropsList supported filtering based on type. Let's replace it with a callback supplied by the caller to allow for more advanced filtering.
Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- src/qemu/qemu_monitor_json.c | 51 +++++++++++++++++++++++++++++------- 1 file changed, 41 insertions(+), 10 deletions(-)
diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c index 6402d18d37..0c78115e9d 100644 --- a/src/qemu/qemu_monitor_json.c +++ b/src/qemu/qemu_monitor_json.c @@ -5837,10 +5837,21 @@ int qemuMonitorJSONSetObjectProperty(qemuMonitor *mon, #undef MAKE_SET_CMD
+/* A filter callback for qemuMonitorJSONParsePropsList. + * + * Returns 0 if the property should be included in the list, + * 1 if the property should be ignored,
I would expect these two to be switched, but could not find a filtering function that can also return an error (The CheckACL ones return bool) Jano
+ * -1 on error. + */

On Thu, Sep 04, 2025 at 16:46:52 +0200, Jiri Denemark via Devel wrote:
From: Jiri Denemark <jdenemar@redhat.com>
qemuMonitorJSONParsePropsList supported filtering based on type. Let's replace it with a callback supplied by the caller to allow for more advanced filtering.
Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- src/qemu/qemu_monitor_json.c | 51 +++++++++++++++++++++++++++++------- 1 file changed, 41 insertions(+), 10 deletions(-)
Reviewed-by: Peter Krempa <pkrempa@redhat.com>

From: Jiri Denemark <jdenemar@redhat.com> When getting enabled CPU features (qemuMonitorJSONGetCPUData), we used to call qemuMonitorJSONGetCPUProperties to get the list of all boolean properties and then queried their values and ignored properties that were not true. By moving the filtering inside qemuMonitorJSONGetCPUProperties we don't need to even add disabled features to any list and also get ready for better QMP interface. Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- src/qemu/qemu_monitor_json.c | 32 ++++++++++++++++++++++---------- 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c index 0c78115e9d..be7ad21eca 100644 --- a/src/qemu/qemu_monitor_json.c +++ b/src/qemu/qemu_monitor_json.c @@ -6595,14 +6595,29 @@ qemuMonitorJSONGetDeviceAliases(qemuMonitor *mon, } +struct _qemuMonitorJSONCPUPropsFilterData { + qemuMonitor *mon; + const char *cpuQOMPath; +}; + static int -qemuMonitorJSONCPUPropsFilter(const char *name G_GNUC_UNUSED, +qemuMonitorJSONCPUPropsFilter(const char *name, virJSONValue *propData, - void *data G_GNUC_UNUSED) + void *opaque) { + qemuMonitorJSONObjectProperty prop = { .type = QEMU_MONITOR_OBJECT_PROPERTY_BOOLEAN }; + struct _qemuMonitorJSONCPUPropsFilterData *data = opaque; + if (STRNEQ_NULLABLE(virJSONValueObjectGetString(propData, "type"), "bool")) return 1; + if (qemuMonitorJSONGetObjectProperty(data->mon, data->cpuQOMPath, + name, &prop) < 0) + return -1; + + if (!prop.val.b) + return 1; + return 0; } @@ -6614,6 +6629,10 @@ qemuMonitorJSONGetCPUProperties(qemuMonitor *mon, { g_autoptr(virJSONValue) cmd = NULL; g_autoptr(virJSONValue) reply = NULL; + struct _qemuMonitorJSONCPUPropsFilterData filterData = { + .mon = mon, + .cpuQOMPath = cpuQOMPath, + }; *props = NULL; @@ -6629,7 +6648,7 @@ qemuMonitorJSONGetCPUProperties(qemuMonitor *mon, return 0; return qemuMonitorJSONParsePropsList(cmd, reply, - qemuMonitorJSONCPUPropsFilter, NULL, + qemuMonitorJSONCPUPropsFilter, &filterData, props); } @@ -6640,7 +6659,6 @@ qemuMonitorJSONGetCPUData(qemuMonitor *mon, qemuMonitorCPUFeatureTranslationCallback translate, virCPUData *data) { - qemuMonitorJSONObjectProperty prop = { .type = QEMU_MONITOR_OBJECT_PROPERTY_BOOLEAN }; g_auto(GStrv) props = NULL; char **p; @@ -6650,12 +6668,6 @@ qemuMonitorJSONGetCPUData(qemuMonitor *mon, for (p = props; p && *p; p++) { const char *name = *p; - if (qemuMonitorJSONGetObjectProperty(mon, cpuQOMPath, name, &prop) < 0) - return -1; - - if (!prop.val.b) - continue; - if (translate) name = translate(data->arch, name); -- 2.51.0

On Thu, Sep 04, 2025 at 16:46:53 +0200, Jiri Denemark via Devel wrote:
From: Jiri Denemark <jdenemar@redhat.com>
When getting enabled CPU features (qemuMonitorJSONGetCPUData), we used to call qemuMonitorJSONGetCPUProperties to get the list of all boolean properties and then queried their values and ignored properties that were not true. By moving the filtering inside qemuMonitorJSONGetCPUProperties we don't need to even add disabled features to any list and also get ready for better QMP interface.
Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- src/qemu/qemu_monitor_json.c | 32 ++++++++++++++++++++++---------- 1 file changed, 22 insertions(+), 10 deletions(-)
Reviewed-by: Peter Krempa <pkrempa@redhat.com>

From: Jiri Denemark <jdenemar@redhat.com> The qemuMonitorJSONParsePropsList API expected a QMP reply as an input. By generalizing it to work on any JSON array, we can reuse the API even for commands which return the array of properties nested in an object. Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- src/qemu/qemu_monitor_json.c | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c index be7ad21eca..76118ea664 100644 --- a/src/qemu/qemu_monitor_json.c +++ b/src/qemu/qemu_monitor_json.c @@ -5848,28 +5848,23 @@ typedef int (*qemuMonitorJSONPropsListFilter)(const char *name, void *data); static int -qemuMonitorJSONParsePropsList(virJSONValue *cmd, - virJSONValue *reply, +qemuMonitorJSONParsePropsList(virJSONValue *array, qemuMonitorJSONPropsListFilter propFilter, void *filterData, char ***props) { - virJSONValue *data; g_auto(GStrv) proplist = NULL; size_t n = 0; size_t count = 0; size_t i; - if (!(data = qemuMonitorJSONGetReply(cmd, reply, VIR_JSON_TYPE_ARRAY))) - return -1; - - n = virJSONValueArraySize(data); + n = virJSONValueArraySize(array); /* null-terminated list */ proplist = g_new0(char *, n + 1); for (i = 0; i < n; i++) { - virJSONValue *child = virJSONValueArrayGet(data, i); + virJSONValue *child = virJSONValueArrayGet(array, i); const char *name = virJSONValueObjectGetString(child, "name"); if (!name) { @@ -5957,6 +5952,7 @@ qemuMonitorJSONGetObjectProps(qemuMonitor *mon, { g_autoptr(virJSONValue) cmd = NULL; g_autoptr(virJSONValue) reply = NULL; + virJSONValue *array; *props = NULL; @@ -5971,7 +5967,10 @@ qemuMonitorJSONGetObjectProps(qemuMonitor *mon, if (qemuMonitorJSONHasError(reply, "DeviceNotFound")) return 0; - return qemuMonitorJSONParsePropsList(cmd, reply, NULL, NULL, props); + if (!(array = qemuMonitorJSONGetReply(cmd, reply, VIR_JSON_TYPE_ARRAY))) + return -1; + + return qemuMonitorJSONParsePropsList(array, NULL, NULL, props); } @@ -6629,6 +6628,7 @@ qemuMonitorJSONGetCPUProperties(qemuMonitor *mon, { g_autoptr(virJSONValue) cmd = NULL; g_autoptr(virJSONValue) reply = NULL; + virJSONValue *array; struct _qemuMonitorJSONCPUPropsFilterData filterData = { .mon = mon, .cpuQOMPath = cpuQOMPath, @@ -6647,9 +6647,11 @@ qemuMonitorJSONGetCPUProperties(qemuMonitor *mon, if (qemuMonitorJSONHasError(reply, "DeviceNotFound")) return 0; - return qemuMonitorJSONParsePropsList(cmd, reply, - qemuMonitorJSONCPUPropsFilter, &filterData, - props); + if (!(array = qemuMonitorJSONGetReply(cmd, reply, VIR_JSON_TYPE_ARRAY))) + return -1; + + return qemuMonitorJSONParsePropsList(array, qemuMonitorJSONCPUPropsFilter, + &filterData, props); } -- 2.51.0

On Thu, Sep 04, 2025 at 16:46:54 +0200, Jiri Denemark via Devel wrote:
From: Jiri Denemark <jdenemar@redhat.com>
The qemuMonitorJSONParsePropsList API expected a QMP reply as an input. By generalizing it to work on any JSON array, we can reuse the API even for commands which return the array of properties nested in an object.
Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- src/qemu/qemu_monitor_json.c | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-)
Reviewed-by: Peter Krempa <pkrempa@redhat.com>

From: Jiri Denemark <jdenemar@redhat.com> qom-list-get is a new QMP command (since QEMU 10.1) that combines qom-list for listing properties of a specified object with qom-get for getting a value of a given property. The new command provides an array of all properties and their values, which allows us to dramatically reduce the number of QMP commands we have to call when starting a domain to check which CPU features were actually enabled. A simple domain with no disk can now be started with only 15 QMP commands in about 200 ms compared to 485 commands and 400 ms startup time without this patch. https://issues.redhat.com/browse/RHEL-7038 Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- src/qemu/qemu_capabilities.c | 2 + src/qemu/qemu_capabilities.h | 1 + src/qemu/qemu_monitor.c | 13 +++- src/qemu/qemu_monitor.h | 1 + src/qemu/qemu_monitor_json.c | 73 ++++++++++++++++--- src/qemu/qemu_monitor_json.h | 7 +- src/qemu/qemu_process.c | 1 + .../caps_10.1.0_x86_64.xml | 1 + .../caps_10.2.0_x86_64.xml | 1 + ...=> get-guest-cpu-SierraForest-legacy.json} | 0 ...> get-guest-cpu-SkylakeClient-legacy.json} | 0 tests/qemumonitorjsontest.c | 18 +++-- 12 files changed, 92 insertions(+), 26 deletions(-) rename tests/qemumonitorjsondata/{get-guest-cpu-SierraForest.json => get-guest-cpu-SierraForest-legacy.json} (100%) rename tests/qemumonitorjsondata/{get-guest-cpu-SkylakeClient.json => get-guest-cpu-SkylakeClient-legacy.json} (100%) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 688d100b01..b7174c657d 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -742,6 +742,7 @@ VIR_ENUM_IMPL(virQEMUCaps, "amd-iommu.pci-id", /* QEMU_CAPS_AMD_IOMMU_PCI_ID */ "usb-bot", /* QEMU_CAPS_DEVICE_USB_BOT */ "tdx-guest", /* QEMU_CAPS_TDX_GUEST */ + "qom-list-get", /* QEMU_CAPS_QOM_LIST_GET */ ); @@ -1256,6 +1257,7 @@ struct virQEMUCapsStringFlags virQEMUCapsCommands[] = { { "query-stats-schemas", QEMU_CAPS_QUERY_STATS_SCHEMAS }, { "display-reload", QEMU_CAPS_DISPLAY_RELOAD }, { "blockdev-set-active", QEMU_CAPS_BLOCKDEV_SET_ACTIVE }, + { "qom-list-get", QEMU_CAPS_QOM_LIST_GET }, }; struct virQEMUCapsStringFlags virQEMUCapsObjectTypes[] = { diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h index 8916973364..f50d908b3f 100644 --- a/src/qemu/qemu_capabilities.h +++ b/src/qemu/qemu_capabilities.h @@ -723,6 +723,7 @@ typedef enum { /* virQEMUCapsFlags grouping marker for syntax-check */ QEMU_CAPS_AMD_IOMMU_PCI_ID, /* amd-iommu.pci-id */ QEMU_CAPS_DEVICE_USB_BOT, /* -device usb-bot */ QEMU_CAPS_TDX_GUEST, /* -object tdx-guest,... */ + QEMU_CAPS_QOM_LIST_GET, /* qom-list-get QMP command */ QEMU_CAPS_LAST /* this must always be the last item */ } virQEMUCapsFlags; diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c index 0213bd5af8..176651eab4 100644 --- a/src/qemu/qemu_monitor.c +++ b/src/qemu/qemu_monitor.c @@ -3673,6 +3673,8 @@ qemuMonitorSetDomainLog(qemuMonitor *mon, * qemuMonitorGetGuestCPU: * @mon: Pointer to the monitor * @arch: CPU architecture + * @qomListGet: QEMU supports getting list of features and their values using + * a single qom-list-get QMP command * @cpuQOMPath: QOM path of a CPU to probe * @translate: callback for translating CPU feature names from QEMU to libvirt * @opaque: data for @translate callback @@ -3687,13 +3689,16 @@ qemuMonitorSetDomainLog(qemuMonitor *mon, int qemuMonitorGetGuestCPU(qemuMonitor *mon, virArch arch, + bool qomListGet, const char *cpuQOMPath, qemuMonitorCPUFeatureTranslationCallback translate, virCPUData **enabled, virCPUData **disabled) { - VIR_DEBUG("arch=%s cpuQOMPath=%s translate=%p enabled=%p disabled=%p", - virArchToString(arch), cpuQOMPath, translate, enabled, disabled); + VIR_DEBUG("arch=%s qomListGet%d cpuQOMPath=%s translate=%p " + "enabled=%p disabled=%p", + virArchToString(arch), qomListGet, cpuQOMPath, translate, + enabled, disabled); QEMU_CHECK_MONITOR(mon); @@ -3701,8 +3706,8 @@ qemuMonitorGetGuestCPU(qemuMonitor *mon, if (disabled) *disabled = NULL; - return qemuMonitorJSONGetGuestCPU(mon, arch, cpuQOMPath, translate, - enabled, disabled); + return qemuMonitorJSONGetGuestCPU(mon, arch, qomListGet, cpuQOMPath, + translate, enabled, disabled); } diff --git a/src/qemu/qemu_monitor.h b/src/qemu/qemu_monitor.h index 689a587ec6..750e7444fc 100644 --- a/src/qemu/qemu_monitor.h +++ b/src/qemu/qemu_monitor.h @@ -1268,6 +1268,7 @@ typedef const char *(*qemuMonitorCPUFeatureTranslationCallback)(virArch arch, int qemuMonitorGetGuestCPU(qemuMonitor *mon, virArch arch, + bool qomListGet, const char *cpuQOMPath, qemuMonitorCPUFeatureTranslationCallback translate, virCPUData **enabled, diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c index 76118ea664..8c70279f6d 100644 --- a/src/qemu/qemu_monitor_json.c +++ b/src/qemu/qemu_monitor_json.c @@ -6596,6 +6596,7 @@ qemuMonitorJSONGetDeviceAliases(qemuMonitor *mon, struct _qemuMonitorJSONCPUPropsFilterData { qemuMonitor *mon; + bool values; const char *cpuQOMPath; }; @@ -6604,17 +6605,32 @@ qemuMonitorJSONCPUPropsFilter(const char *name, virJSONValue *propData, void *opaque) { - qemuMonitorJSONObjectProperty prop = { .type = QEMU_MONITOR_OBJECT_PROPERTY_BOOLEAN }; struct _qemuMonitorJSONCPUPropsFilterData *data = opaque; + bool enabled = false; if (STRNEQ_NULLABLE(virJSONValueObjectGetString(propData, "type"), "bool")) return 1; - if (qemuMonitorJSONGetObjectProperty(data->mon, data->cpuQOMPath, - name, &prop) < 0) - return -1; + if (data->values) { + if (virJSONValueObjectGetBoolean(propData, "value", &enabled) < 0) { + virReportError(VIR_ERR_INTERNAL_ERROR, + _("property '%1$s' in reply data was missing value"), + name); + return -1; + } + } else { + qemuMonitorJSONObjectProperty prop = { + .type = QEMU_MONITOR_OBJECT_PROPERTY_BOOLEAN + }; - if (!prop.val.b) + if (qemuMonitorJSONGetObjectProperty(data->mon, data->cpuQOMPath, + name, &prop) < 0) + return -1; + + enabled = prop.val.b; + } + + if (!enabled) return 1; return 0; @@ -6623,6 +6639,7 @@ qemuMonitorJSONCPUPropsFilter(const char *name, static int qemuMonitorJSONGetCPUProperties(qemuMonitor *mon, + bool qomListGet, const char *cpuQOMPath, char ***props) { @@ -6631,14 +6648,29 @@ qemuMonitorJSONGetCPUProperties(qemuMonitor *mon, virJSONValue *array; struct _qemuMonitorJSONCPUPropsFilterData filterData = { .mon = mon, + .values = qomListGet, .cpuQOMPath = cpuQOMPath, }; *props = NULL; - if (!(cmd = qemuMonitorJSONMakeCommand("qom-list", - "s:path", cpuQOMPath, - NULL))) + if (qomListGet) { + g_autoptr(virJSONValue) paths = virJSONValueNewArray(); + g_autoptr(virJSONValue) path = virJSONValueNewString(g_strdup(cpuQOMPath)); + + if (virJSONValueArrayAppend(paths, &path) < 0) + return -1; + + cmd = qemuMonitorJSONMakeCommand("qom-list-get", + "a:paths", &paths, + NULL); + } else { + cmd = qemuMonitorJSONMakeCommand("qom-list", + "s:path", cpuQOMPath, + NULL); + } + + if (!cmd) return -1; if (qemuMonitorJSONCommand(mon, cmd, &reply) < 0) @@ -6650,6 +6682,22 @@ qemuMonitorJSONGetCPUProperties(qemuMonitor *mon, if (!(array = qemuMonitorJSONGetReply(cmd, reply, VIR_JSON_TYPE_ARRAY))) return -1; + if (qomListGet) { + if (virJSONValueArraySize(array) != 1) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("'qom-list-get' returned unexpected number of paths")); + return -1; + } + + array = virJSONValueObjectGetArray(virJSONValueArrayGet(array, 0), + "properties"); + if (!array) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("reply data was missing 'properties' array")); + return -1; + } + } + return qemuMonitorJSONParsePropsList(array, qemuMonitorJSONCPUPropsFilter, &filterData, props); } @@ -6657,6 +6705,7 @@ qemuMonitorJSONGetCPUProperties(qemuMonitor *mon, static int qemuMonitorJSONGetCPUData(qemuMonitor *mon, + bool qomListGet, const char *cpuQOMPath, qemuMonitorCPUFeatureTranslationCallback translate, virCPUData *data) @@ -6664,7 +6713,7 @@ qemuMonitorJSONGetCPUData(qemuMonitor *mon, g_auto(GStrv) props = NULL; char **p; - if (qemuMonitorJSONGetCPUProperties(mon, cpuQOMPath, &props) < 0) + if (qemuMonitorJSONGetCPUProperties(mon, qomListGet, cpuQOMPath, &props) < 0) return -1; for (p = props; p && *p; p++) { @@ -6712,6 +6761,8 @@ qemuMonitorJSONGetCPUDataDisabled(qemuMonitor *mon, * qemuMonitorJSONGetGuestCPU: * @mon: Pointer to the monitor * @arch: CPU architecture + * @qomListGet: QEMU supports getting list of features and their values using + * a single qom-list-get QMP command * @cpuQOMPath: QOM path of a CPU to probe * @translate: callback for translating CPU feature names from QEMU to libvirt * @opaque: data for @translate callback @@ -6726,6 +6777,7 @@ qemuMonitorJSONGetCPUDataDisabled(qemuMonitor *mon, int qemuMonitorJSONGetGuestCPU(qemuMonitor *mon, virArch arch, + bool qomListGet, const char *cpuQOMPath, qemuMonitorCPUFeatureTranslationCallback translate, virCPUData **enabled, @@ -6738,7 +6790,8 @@ qemuMonitorJSONGetGuestCPU(qemuMonitor *mon, !(cpuDisabled = virCPUDataNew(arch))) return -1; - if (qemuMonitorJSONGetCPUData(mon, cpuQOMPath, translate, cpuEnabled) < 0) + if (qemuMonitorJSONGetCPUData(mon, qomListGet, cpuQOMPath, + translate, cpuEnabled) < 0) return -1; if (disabled && diff --git a/src/qemu/qemu_monitor_json.h b/src/qemu/qemu_monitor_json.h index f076e637ba..f17769f7fe 100644 --- a/src/qemu/qemu_monitor_json.h +++ b/src/qemu/qemu_monitor_json.h @@ -558,15 +558,10 @@ int qemuMonitorJSONGetDeviceAliases(qemuMonitor *mon, char ***aliases); -int -qemuMonitorJSONGetGuestCPUx86(qemuMonitor *mon, - const char *cpuQOMPath, - virCPUData **data, - virCPUData **disabled); - int qemuMonitorJSONGetGuestCPU(qemuMonitor *mon, virArch arch, + bool qomListGet, const char *cpuQOMPath, qemuMonitorCPUFeatureTranslationCallback translate, virCPUData **enabled, diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index 2988ffb157..ead5bf3e48 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -4592,6 +4592,7 @@ qemuProcessFetchGuestCPU(virDomainObj *vm, rc = qemuMonitorGetGuestCPU(priv->mon, vm->def->os.arch, + virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_QOM_LIST_GET), cpuQOMPath, virQEMUCapsCPUFeatureFromQEMU, &dataEnabled, &dataDisabled); diff --git a/tests/qemucapabilitiesdata/caps_10.1.0_x86_64.xml b/tests/qemucapabilitiesdata/caps_10.1.0_x86_64.xml index dc3088ba2c..8c53b72b47 100644 --- a/tests/qemucapabilitiesdata/caps_10.1.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_10.1.0_x86_64.xml @@ -213,6 +213,7 @@ <flag name='amd-iommu.pci-id'/> <flag name='usb-bot'/> <flag name='tdx-guest'/> + <flag name='qom-list-get'/> <version>10001000</version> <microcodeVersion>43100286</microcodeVersion> <package>v10.1.0</package> diff --git a/tests/qemucapabilitiesdata/caps_10.2.0_x86_64.xml b/tests/qemucapabilitiesdata/caps_10.2.0_x86_64.xml index 07826b1a6e..c7452772da 100644 --- a/tests/qemucapabilitiesdata/caps_10.2.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_10.2.0_x86_64.xml @@ -213,6 +213,7 @@ <flag name='amd-iommu.pci-id'/> <flag name='usb-bot'/> <flag name='tdx-guest'/> + <flag name='qom-list-get'/> <version>10001050</version> <microcodeVersion>43100287</microcodeVersion> <package>v10.1.0-1-ge771ba98de</package> diff --git a/tests/qemumonitorjsondata/get-guest-cpu-SierraForest.json b/tests/qemumonitorjsondata/get-guest-cpu-SierraForest-legacy.json similarity index 100% rename from tests/qemumonitorjsondata/get-guest-cpu-SierraForest.json rename to tests/qemumonitorjsondata/get-guest-cpu-SierraForest-legacy.json diff --git a/tests/qemumonitorjsondata/get-guest-cpu-SkylakeClient.json b/tests/qemumonitorjsondata/get-guest-cpu-SkylakeClient-legacy.json similarity index 100% rename from tests/qemumonitorjsondata/get-guest-cpu-SkylakeClient.json rename to tests/qemumonitorjsondata/get-guest-cpu-SkylakeClient-legacy.json diff --git a/tests/qemumonitorjsontest.c b/tests/qemumonitorjsontest.c index c3e83fc728..9c857a209e 100644 --- a/tests/qemumonitorjsontest.c +++ b/tests/qemumonitorjsontest.c @@ -2773,6 +2773,7 @@ testQemuMonitorJSONGetSEVInfo(const void *opaque) struct testQemuMonitorJSONGetGuestCPUData { const char *name; + bool qomListGet; virQEMUDriver driver; GHashTable *schema; }; @@ -2791,8 +2792,9 @@ testQemuMonitorJSONGetGuestCPU(const void *opaque) g_autofree char *enabled = NULL; g_autofree char *disabled = NULL; bool failed = false; + const char *legacy = data->qomListGet ? "" : "-legacy"; - fileJSON = g_strdup_printf("%s-%s.json", base, data->name); + fileJSON = g_strdup_printf("%s-%s%s.json", base, data->name, legacy); fileEnabled = g_strdup_printf("%s-%s-enabled.xml", base, data->name); fileDisabled = g_strdup_printf("%s-%s-disabled.xml", base, data->name); @@ -2802,6 +2804,7 @@ testQemuMonitorJSONGetGuestCPU(const void *opaque) if (qemuMonitorJSONGetGuestCPU(qemuMonitorTestGetMonitor(mon), VIR_ARCH_X86_64, + data->qomListGet, "/machine/unattached/device[0]", virQEMUCapsCPUFeatureFromQEMU, &dataEnabled, &dataDisabled) < 0) @@ -2884,11 +2887,14 @@ mymain(void) ret = -1; \ } while (0) -#define DO_TEST_GET_GUEST_CPU(name) \ +#define DO_TEST_GET_GUEST_CPU(name, qomListGet) \ do { \ struct testQemuMonitorJSONGetGuestCPUData data = { \ - name, driver, qapiData.schema }; \ - if (virTestRun("GetGuestCPU(" name ")", \ + name, qomListGet, driver, qapiData.schema }; \ + g_autofree char *label = NULL; \ + label = g_strdup_printf("GetGuestCPU(%s, legacy=%s)", \ + name, qomListGet ? "false" : "true"); \ + if (virTestRun(label, \ testQemuMonitorJSONGetGuestCPU, \ &data) < 0) \ ret = -1; \ @@ -2984,8 +2990,8 @@ mymain(void) DO_TEST_CPU_INFO("s390", 2); - DO_TEST_GET_GUEST_CPU("SierraForest"); - DO_TEST_GET_GUEST_CPU("SkylakeClient"); + DO_TEST_GET_GUEST_CPU("SierraForest", false); + DO_TEST_GET_GUEST_CPU("SkylakeClient", false); #define DO_TEST_QAPI_QUERY(nme, qry, scc, rplobj) \ -- 2.51.0

On Thu, Sep 04, 2025 at 16:46:55 +0200, Jiri Denemark via Devel wrote:
From: Jiri Denemark <jdenemar@redhat.com>
qom-list-get is a new QMP command (since QEMU 10.1) that combines qom-list for listing properties of a specified object with qom-get for getting a value of a given property. The new command provides an array of all properties and their values, which allows us to dramatically reduce the number of QMP commands we have to call when starting a domain to check which CPU features were actually enabled.
A simple domain with no disk can now be started with only 15 QMP commands in about 200 ms compared to 485 commands and 400 ms startup time without this patch.
https://issues.redhat.com/browse/RHEL-7038
Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- src/qemu/qemu_capabilities.c | 2 + src/qemu/qemu_capabilities.h | 1 + src/qemu/qemu_monitor.c | 13 +++- src/qemu/qemu_monitor.h | 1 + src/qemu/qemu_monitor_json.c | 73 ++++++++++++++++--- src/qemu/qemu_monitor_json.h | 7 +- src/qemu/qemu_process.c | 1 + .../caps_10.1.0_x86_64.xml | 1 + .../caps_10.2.0_x86_64.xml | 1 + ...=> get-guest-cpu-SierraForest-legacy.json} | 0 ...> get-guest-cpu-SkylakeClient-legacy.json} | 0 tests/qemumonitorjsontest.c | 18 +++-- 12 files changed, 92 insertions(+), 26 deletions(-) rename tests/qemumonitorjsondata/{get-guest-cpu-SierraForest.json => get-guest-cpu-SierraForest-legacy.json} (100%) rename tests/qemumonitorjsondata/{get-guest-cpu-SkylakeClient.json => get-guest-cpu-SkylakeClient-legacy.json} (100%)
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 688d100b01..b7174c657d 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -742,6 +742,7 @@ VIR_ENUM_IMPL(virQEMUCaps, "amd-iommu.pci-id", /* QEMU_CAPS_AMD_IOMMU_PCI_ID */ "usb-bot", /* QEMU_CAPS_DEVICE_USB_BOT */ "tdx-guest", /* QEMU_CAPS_TDX_GUEST */ + "qom-list-get", /* QEMU_CAPS_QOM_LIST_GET */ );
@@ -1256,6 +1257,7 @@ struct virQEMUCapsStringFlags virQEMUCapsCommands[] = { { "query-stats-schemas", QEMU_CAPS_QUERY_STATS_SCHEMAS }, { "display-reload", QEMU_CAPS_DISPLAY_RELOAD }, { "blockdev-set-active", QEMU_CAPS_BLOCKDEV_SET_ACTIVE }, + { "qom-list-get", QEMU_CAPS_QOM_LIST_GET }, };
struct virQEMUCapsStringFlags virQEMUCapsObjectTypes[] = { diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h index 8916973364..f50d908b3f 100644 --- a/src/qemu/qemu_capabilities.h +++ b/src/qemu/qemu_capabilities.h @@ -723,6 +723,7 @@ typedef enum { /* virQEMUCapsFlags grouping marker for syntax-check */ QEMU_CAPS_AMD_IOMMU_PCI_ID, /* amd-iommu.pci-id */ QEMU_CAPS_DEVICE_USB_BOT, /* -device usb-bot */ QEMU_CAPS_TDX_GUEST, /* -object tdx-guest,... */ + QEMU_CAPS_QOM_LIST_GET, /* qom-list-get QMP command */
QEMU_CAPS_LAST /* this must always be the last item */ } virQEMUCapsFlags;
Preferrably introduce new capabilities in separate patch.
diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c index 0213bd5af8..176651eab4 100644 --- a/src/qemu/qemu_monitor.c +++ b/src/qemu/qemu_monitor.c @@ -3673,6 +3673,8 @@ qemuMonitorSetDomainLog(qemuMonitor *mon, * qemuMonitorGetGuestCPU: * @mon: Pointer to the monitor * @arch: CPU architecture + * @qomListGet: QEMU supports getting list of features and their values using + * a single qom-list-get QMP command * @cpuQOMPath: QOM path of a CPU to probe * @translate: callback for translating CPU feature names from QEMU to libvirt * @opaque: data for @translate callback @@ -3687,13 +3689,16 @@ qemuMonitorSetDomainLog(qemuMonitor *mon, int qemuMonitorGetGuestCPU(qemuMonitor *mon, virArch arch, + bool qomListGet, const char *cpuQOMPath, qemuMonitorCPUFeatureTranslationCallback translate, virCPUData **enabled, virCPUData **disabled) { - VIR_DEBUG("arch=%s cpuQOMPath=%s translate=%p enabled=%p disabled=%p", - virArchToString(arch), cpuQOMPath, translate, enabled, disabled); + VIR_DEBUG("arch=%s qomListGet%d cpuQOMPath=%s translate=%p "
qomListGet=%d instead of qomListGet%d
+ "enabled=%p disabled=%p", + virArchToString(arch), qomListGet, cpuQOMPath, translate, + enabled, disabled);
QEMU_CHECK_MONITOR(mon);
[...]
@@ -6631,14 +6648,29 @@ qemuMonitorJSONGetCPUProperties(qemuMonitor *mon, virJSONValue *array; struct _qemuMonitorJSONCPUPropsFilterData filterData = { .mon = mon, + .values = qomListGet, .cpuQOMPath = cpuQOMPath, };
*props = NULL;
- if (!(cmd = qemuMonitorJSONMakeCommand("qom-list", - "s:path", cpuQOMPath, - NULL))) + if (qomListGet) { + g_autoptr(virJSONValue) paths = virJSONValueNewArray(); + g_autoptr(virJSONValue) path = virJSONValueNewString(g_strdup(cpuQOMPath)); + + if (virJSONValueArrayAppend(paths, &path) < 0) + return -1;
How about 'virJSONValueArrayAppendString'? instead of the manual construction?
+ + cmd = qemuMonitorJSONMakeCommand("qom-list-get", + "a:paths", &paths, + NULL); + } else { + cmd = qemuMonitorJSONMakeCommand("qom-list", + "s:path", cpuQOMPath, + NULL); + }
[...]
diff --git a/src/qemu/qemu_monitor_json.h b/src/qemu/qemu_monitor_json.h index f076e637ba..f17769f7fe 100644 --- a/src/qemu/qemu_monitor_json.h +++ b/src/qemu/qemu_monitor_json.h @@ -558,15 +558,10 @@ int qemuMonitorJSONGetDeviceAliases(qemuMonitor *mon, char ***aliases);
-int -qemuMonitorJSONGetGuestCPUx86(qemuMonitor *mon, - const char *cpuQOMPath, - virCPUData **data, - virCPUData **disabled); -
Leftover from 1/15?
int qemuMonitorJSONGetGuestCPU(qemuMonitor *mon, virArch arch, + bool qomListGet, const char *cpuQOMPath, qemuMonitorCPUFeatureTranslationCallback translate, virCPUData **enabled,
[...]
--- a/tests/qemumonitorjsontest.c +++ b/tests/qemumonitorjsontest.c @@ -2773,6 +2773,7 @@ testQemuMonitorJSONGetSEVInfo(const void *opaque)
struct testQemuMonitorJSONGetGuestCPUData { const char *name; + bool qomListGet; virQEMUDriver driver; GHashTable *schema; }; @@ -2791,8 +2792,9 @@ testQemuMonitorJSONGetGuestCPU(const void *opaque) g_autofree char *enabled = NULL; g_autofree char *disabled = NULL; bool failed = false; + const char *legacy = data->qomListGet ? "" : "-legacy";
- fileJSON = g_strdup_printf("%s-%s.json", base, data->name); + fileJSON = g_strdup_printf("%s-%s%s.json", base, data->name, legacy); fileEnabled = g_strdup_printf("%s-%s-enabled.xml", base, data->name); fileDisabled = g_strdup_printf("%s-%s-disabled.xml", base, data->name);
@@ -2802,6 +2804,7 @@ testQemuMonitorJSONGetGuestCPU(const void *opaque)
if (qemuMonitorJSONGetGuestCPU(qemuMonitorTestGetMonitor(mon), VIR_ARCH_X86_64, + data->qomListGet, "/machine/unattached/device[0]", virQEMUCapsCPUFeatureFromQEMU, &dataEnabled, &dataDisabled) < 0) @@ -2884,11 +2887,14 @@ mymain(void) ret = -1; \ } while (0)
-#define DO_TEST_GET_GUEST_CPU(name) \ +#define DO_TEST_GET_GUEST_CPU(name, qomListGet) \ do { \ struct testQemuMonitorJSONGetGuestCPUData data = { \ - name, driver, qapiData.schema }; \ - if (virTestRun("GetGuestCPU(" name ")", \ + name, qomListGet, driver, qapiData.schema }; \ + g_autofree char *label = NULL; \ + label = g_strdup_printf("GetGuestCPU(%s, legacy=%s)", \ + name, qomListGet ? "false" : "true"); \
Not converting it to a string can save you the ternary use. With the caps separated and the nits addressed: Reviewed-by: Peter Krempa <pkrempa@redhat.com>

From: Jiri Denemark <jdenemar@redhat.com> The test cases show both the legacy method and the new one produce identical results. Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- .../get-guest-cpu-SierraForest.json | 2985 +++++++++++++++++ .../get-guest-cpu-SkylakeClient.json | 2967 ++++++++++++++++ tests/qemumonitorjsontest.c | 2 + 3 files changed, 5954 insertions(+) create mode 100644 tests/qemumonitorjsondata/get-guest-cpu-SierraForest.json create mode 100644 tests/qemumonitorjsondata/get-guest-cpu-SkylakeClient.json diff --git a/tests/qemumonitorjsondata/get-guest-cpu-SierraForest.json b/tests/qemumonitorjsondata/get-guest-cpu-SierraForest.json new file mode 100644 index 0000000000..d64ae84532 --- /dev/null +++ b/tests/qemumonitorjsondata/get-guest-cpu-SierraForest.json @@ -0,0 +1,2985 @@ +{ + "execute": "qom-list-get", + "arguments": { + "paths": [ + "/machine/unattached/device[0]" + ] + }, + "id": "libvirt-1" +} + +{ + "return": [ + { + "properties": [ + { + "name": "type", + "value": "SierraForest-v1-x86_64-cpu", + "type": "string" + }, + { + "name": "parent_bus", + "value": "", + "type": "link<bus>" + }, + { + "name": "realized", + "value": true, + "type": "bool" + }, + { + "name": "hotplugged", + "value": false, + "type": "bool" + }, + { + "name": "hotpluggable", + "value": true, + "type": "bool" + }, + { + "name": "memory", + "value": "/machine/unattached/system[0]", + "type": "link<memory-region>" + }, + { + "name": "legacy-memory", + "type": "str" + }, + { + "name": "start-powered-off", + "value": false, + "type": "bool" + }, + { + "name": "vmx-invept-single-context", + "value": false, + "type": "bool" + }, + { + "name": "core-capability", + "value": false, + "type": "bool" + }, + { + "name": "popcnt", + "value": true, + "type": "bool" + }, + { + "name": "sgx-debug", + "value": false, + "type": "bool" + }, + { + "name": "kvm-poll-control", + "value": false, + "type": "bool" + }, + { + "name": "dtes64", + "value": false, + "type": "bool" + }, + { + "name": "vmx-invvpid-single-addr", + "value": false, + "type": "bool" + }, + { + "name": "xstore", + "value": false, + "type": "bool" + }, + { + "name": "min-xlevel2", + "value": 0, + "type": "uint32" + }, + { + "name": "stepping", + "value": 0, + "type": "int" + }, + { + "name": "x-vendor-cpuid-only-v2", + "value": false, + "type": "bool" + }, + { + "name": "sm4", + "value": false, + "type": "bool" + }, + { + "name": "hv-emsr-bitmap", + "value": false, + "type": "bool" + }, + { + "name": "pse36", + "value": true, + "type": "bool" + }, + { + "name": "avx512-4vnniw", + "value": false, + "type": "bool" + }, + { + "name": "x-intel-pt-auto-level", + "value": true, + "type": "bool" + }, + { + "name": "fma4", + "value": false, + "type": "bool" + }, + { + "name": "avx512-vp2intersect", + "value": false, + "type": "bool" + }, + { + "name": "avx2", + "value": true, + "type": "bool" + }, + { + "name": "amd-psfd", + "value": false, + "type": "bool" + }, + { + "name": "amd-stibp", + "value": false, + "type": "bool" + }, + { + "name": "sgxlc", + "value": false, + "type": "bool" + }, + { + "name": "sm3", + "value": false, + "type": "bool" + }, + { + "name": "family", + "value": 6, + "type": "int" + }, + { + "name": "vmx-ept-advanced-exitinfo", + "value": false, + "type": "bool" + }, + { + "name": "vmx-store-lma", + "value": false, + "type": "bool" + }, + { + "name": "msr-imm", + "value": false, + "type": "bool" + }, + { + "name": "vmware-cpuid-freq", + "value": true, + "type": "bool" + }, + { + "name": "hv-spinlocks", + "value": 4294967295, + "type": "uint32" + }, + { + "name": "x-force-cpuid-0x1f", + "value": false, + "type": "bool" + }, + { + "name": "ddpd-u", + "value": false, + "type": "bool" + }, + { + "name": "vmx-nested-exception", + "value": false, + "type": "bool" + }, + { + "name": "vmx-entry-noload-debugctl", + "value": false, + "type": "bool" + }, + { + "name": "bhi-no", + "value": false, + "type": "bool" + }, + { + "name": "amx-fp16", + "value": false, + "type": "bool" + }, + { + "name": "erms", + "value": true, + "type": "bool" + }, + { + "name": "vaes", + "value": true, + "type": "bool" + }, + { + "name": "vmx-eptad", + "value": false, + "type": "bool" + }, + { + "name": "vmx-activity-wait-sipi", + "value": false, + "type": "bool" + }, + { + "name": "vmx-flexpriority", + "value": false, + "type": "bool" + }, + { + "name": "hv-reset", + "value": false, + "type": "bool" + }, + { + "name": "rdrand", + "value": true, + "type": "bool" + }, + { + "name": "lam", + "value": false, + "type": "bool" + }, + { + "name": "vmx-pause-exit", + "value": false, + "type": "bool" + }, + { + "name": "vmx-shadow-vmcs", + "value": false, + "type": "bool" + }, + { + "name": "model", + "value": 175, + "type": "int" + }, + { + "name": "avx512-vpopcntdq", + "value": false, + "type": "bool" + }, + { + "name": "xcrypt", + "value": false, + "type": "bool" + }, + { + "name": "tbm", + "value": false, + "type": "bool" + }, + { + "name": "movdiri", + "value": false, + "type": "bool" + }, + { + "name": "vmx-monitor-exit", + "value": false, + "type": "bool" + }, + { + "name": "kvm-pv-eoi", + "value": true, + "type": "bool" + }, + { + "name": "hv-version-id-spack", + "value": 0, + "type": "uint32" + }, + { + "name": "lm", + "value": true, + "type": "bool" + }, + { + "name": "x-vendor-cpuid-only", + "value": true, + "type": "bool" + }, + { + "name": "pbrsb-no", + "value": false, + "type": "bool" + }, + { + "name": "vmx-unrestricted-guest", + "value": false, + "type": "bool" + }, + { + "name": "host-phys-bits-limit", + "value": 0, + "type": "uint8" + }, + { + "name": "pae", + "value": true, + "type": "bool" + }, + { + "name": "ssse3", + "value": true, + "type": "bool" + }, + { + "name": "hv-runtime", + "value": false, + "type": "bool" + }, + { + "name": "phe", + "value": false, + "type": "bool" + }, + { + "name": "guest-phys-bits", + "value": 0, + "type": "uint32" + }, + { + "name": "host-phys-bits", + "value": false, + "type": "bool" + }, + { + "name": "taa-no", + "value": false, + "type": "bool" + }, + { + "name": "sgx-aex-notify", + "value": false, + "type": "bool" + }, + { + "name": "full-width-write", + "value": false, + "type": "bool" + }, + { + "name": "arat", + "value": true, + "type": "bool" + }, + { + "name": "avx512vbmi2", + "value": false, + "type": "bool" + }, + { + "name": "sha512", + "value": false, + "type": "bool" + }, + { + "name": "arch-lbr", + "value": false, + "type": "bool" + }, + { + "name": "vmx-vnmi-pending", + "value": false, + "type": "bool" + }, + { + "name": "vmx-any-errcode", + "value": false, + "type": "bool" + }, + { + "name": "x2apic", + "value": true, + "type": "bool" + }, + { + "name": "npt", + "value": false, + "type": "bool" + }, + { + "name": "pmm-en", + "value": false, + "type": "bool" + }, + { + "name": "vmx-invpcid-exit", + "value": false, + "type": "bool" + }, + { + "name": "avx512ifma", + "value": false, + "type": "bool" + }, + { + "name": "ibpb-brtype", + "value": false, + "type": "bool" + }, + { + "name": "model-id", + "value": "Intel Xeon Processor (SierraForest)", + "type": "string" + }, + { + "name": "ucode-rev", + "value": 4294967296, + "type": "uint64" + }, + { + "name": "hv-evmcs", + "value": false, + "type": "bool" + }, + { + "name": "srso-user-kernel-no", + "value": false, + "type": "bool" + }, + { + "name": "vmx-io-exit", + "value": false, + "type": "bool" + }, + { + "name": "tsc", + "value": true, + "type": "bool" + }, + { + "name": "x-force-features", + "value": false, + "type": "bool" + }, + { + "name": "vmx-ins-outs", + "value": false, + "type": "bool" + }, + { + "name": "dca", + "value": false, + "type": "bool" + }, + { + "name": "vmx-apicv-x2apic", + "value": false, + "type": "bool" + }, + { + "name": "perfctr-core", + "value": false, + "type": "bool" + }, + { + "name": "ia64", + "value": false, + "type": "bool" + }, + { + "name": "fdp-excptn-only", + "value": false, + "type": "bool" + }, + { + "name": "hv-stimer-direct", + "value": false, + "type": "bool" + }, + { + "name": "gds-no", + "value": false, + "type": "bool" + }, + { + "name": "vmx-exit-secondary-ctls", + "value": false, + "type": "bool" + }, + { + "name": "vmx-cr3-load-noexit", + "value": false, + "type": "bool" + }, + { + "name": "rfds-no", + "value": false, + "type": "bool" + }, + { + "name": "pmu", + "value": false, + "type": "bool" + }, + { + "name": "vmx-entry-load-rtit-ctl", + "value": false, + "type": "bool" + }, + { + "name": "kvmclock", + "value": true, + "type": "bool" + }, + { + "name": "avx10", + "value": false, + "type": "bool" + }, + { + "name": "vmx-invept-single-context-noglobals", + "value": false, + "type": "bool" + }, + { + "name": "xen-vapic", + "value": false, + "type": "bool" + }, + { + "name": "md-clear", + "value": false, + "type": "bool" + }, + { + "name": "invtsc", + "value": false, + "type": "bool" + }, + { + "name": "pn", + "value": false, + "type": "bool" + }, + { + "name": "avx512cd", + "value": false, + "type": "bool" + }, + { + "name": "cmp-legacy", + "value": false, + "type": "bool" + }, + { + "name": "cx16", + "value": true, + "type": "bool" + }, + { + "name": "avx512dq", + "value": false, + "type": "bool" + }, + { + "name": "abm", + "value": true, + "type": "bool" + }, + { + "name": "vmx-activity-shutdown", + "value": false, + "type": "bool" + }, + { + "name": "auto-ibrs", + "value": false, + "type": "bool" + }, + { + "name": "kvm-pv-ipi", + "value": false, + "type": "bool" + }, + { + "name": "avx10-128", + "value": false, + "type": "bool" + }, + { + "name": "vmx-apicv-register", + "value": false, + "type": "bool" + }, + { + "name": "fxsr-opt", + "value": false, + "type": "bool" + }, + { + "name": "skip-l1dfl-vmentry", + "value": true, + "type": "bool" + }, + { + "name": "fill-mtrr-mask", + "value": true, + "type": "bool" + }, + { + "name": "x-migrate-smi-count", + "value": true, + "type": "bool" + }, + { + "name": "wbnoinvd", + "value": false, + "type": "bool" + }, + { + "name": "sgx1", + "value": false, + "type": "bool" + }, + { + "name": "rdpid", + "value": true, + "type": "bool" + }, + { + "name": "pcid", + "value": true, + "type": "bool" + }, + { + "name": "bhi-ctrl", + "value": false, + "type": "bool" + }, + { + "name": "syscall", + "value": true, + "type": "bool" + }, + { + "name": "pse", + "value": true, + "type": "bool" + }, + { + "name": "rrsba-ctrl", + "value": false, + "type": "bool" + }, + { + "name": "avx-ne-convert", + "value": false, + "type": "bool" + }, + { + "name": "xsaves", + "value": true, + "type": "bool" + }, + { + "name": "vmx-entry-load-pat", + "value": false, + "type": "bool" + }, + { + "name": "vgif", + "value": false, + "type": "bool" + }, + { + "name": "mce", + "value": true, + "type": "bool" + }, + { + "name": "xfd", + "value": false, + "type": "bool" + }, + { + "name": "node-id", + "value": -1, + "type": "int32" + }, + { + "name": "sgx-tokenkey", + "value": false, + "type": "bool" + }, + { + "name": "ibpb", + "value": false, + "type": "bool" + }, + { + "name": "x-amd-topoext-features-only", + "value": true, + "type": "bool" + }, + { + "name": "vmx-apicv-xapic", + "value": false, + "type": "bool" + }, + { + "name": "vmx-hlt-exit", + "value": false, + "type": "bool" + }, + { + "name": "lwp", + "value": false, + "type": "bool" + }, + { + "name": "eraps", + "value": false, + "type": "bool" + }, + { + "name": "cldemote", + "value": false, + "type": "bool" + }, + { + "name": "vmx-exit-load-pkrs", + "value": false, + "type": "bool" + }, + { + "name": "rtm", + "value": false, + "type": "bool" + }, + { + "name": "hv-tlbflush", + "value": false, + "type": "bool" + }, + { + "name": "kvm-steal-time", + "value": true, + "type": "bool" + }, + { + "name": "cpuid-0xb", + "value": true, + "type": "bool" + }, + { + "name": "fsrs", + "value": true, + "type": "bool" + }, + { + "name": "sgx-provisionkey", + "value": false, + "type": "bool" + }, + { + "name": "vmx-eptp-switching", + "value": false, + "type": "bool" + }, + { + "name": "vmx-invlpg-exit", + "value": false, + "type": "bool" + }, + { + "name": "vmx-entry-load-efer", + "value": false, + "type": "bool" + }, + { + "name": "level-func7", + "value": 2, + "type": "uint32" + }, + { + "name": "die-id", + "value": 0, + "type": "int32" + }, + { + "name": "vmx-exit-save-efer", + "value": false, + "type": "bool" + }, + { + "name": "x-l1-cache-per-thread", + "value": true, + "type": "bool" + }, + { + "name": "vme", + "value": true, + "type": "bool" + }, + { + "name": "kvm-pv-unhalt", + "value": false, + "type": "bool" + }, + { + "name": "vmx-desc-exit", + "value": false, + "type": "bool" + }, + { + "name": "sgx-kss", + "value": false, + "type": "bool" + }, + { + "name": "vmx-invvpid", + "value": false, + "type": "bool" + }, + { + "name": "vmx-entry-ia32e-mode", + "value": false, + "type": "bool" + }, + { + "name": "svm", + "value": false, + "type": "bool" + }, + { + "name": "kvm-hint-dedicated", + "value": false, + "type": "bool" + }, + { + "name": "vmx-ept-execonly", + "value": false, + "type": "bool" + }, + { + "name": "avx-ifma", + "value": false, + "type": "bool" + }, + { + "name": "module-id", + "value": 0, + "type": "int32" + }, + { + "name": "mca", + "value": true, + "type": "bool" + }, + { + "name": "vmx-tsc-scaling", + "value": false, + "type": "bool" + }, + { + "name": "mtrr", + "value": true, + "type": "bool" + }, + { + "name": "cid", + "value": false, + "type": "bool" + }, + { + "name": "pfthreshold", + "value": false, + "type": "bool" + }, + { + "name": "pmm", + "value": false, + "type": "bool" + }, + { + "name": "lahf-lm", + "value": true, + "type": "bool" + }, + { + "name": "zero-fcs-fds", + "value": false, + "type": "bool" + }, + { + "name": "hv-version-id-build", + "value": 14393, + "type": "uint32" + }, + { + "name": "vmx-entry-load-pkrs", + "value": false, + "type": "bool" + }, + { + "name": "tcg-cpuid", + "value": true, + "type": "bool" + }, + { + "name": "no-nested-data-bp", + "value": false, + "type": "bool" + }, + { + "name": "legacy-multi-node", + "value": false, + "type": "bool" + }, + { + "name": "x-hv-max-vps", + "value": -1, + "type": "int32" + }, + { + "name": "tm", + "value": false, + "type": "bool" + }, + { + "name": "pbe", + "value": false, + "type": "bool" + }, + { + "name": "amx-int8", + "value": false, + "type": "bool" + }, + { + "name": "vmx-rdpmc-exit", + "value": false, + "type": "bool" + }, + { + "name": "intel-psfd", + "value": false, + "type": "bool" + }, + { + "name": "fs-gs-base-ns", + "value": false, + "type": "bool" + }, + { + "name": "split-lock-detect", + "value": false, + "type": "bool" + }, + { + "name": "apic-id", + "value": 0, + "type": "uint32" + }, + { + "name": "fpu", + "value": true, + "type": "bool" + }, + { + "name": "skinit", + "value": false, + "type": "bool" + }, + { + "name": "l3-cache", + "value": true, + "type": "bool" + }, + { + "name": "sep", + "value": true, + "type": "bool" + }, + { + "name": "vmx-exit-load-pat", + "value": false, + "type": "bool" + }, + { + "name": "intel-pt-lip", + "value": false, + "type": "bool" + }, + { + "name": "avx10-512", + "value": false, + "type": "bool" + }, + { + "name": "hv-tlbflush-direct", + "value": false, + "type": "bool" + }, + { + "name": "avx512-bf16", + "value": false, + "type": "bool" + }, + { + "name": "overflow-recov", + "value": false, + "type": "bool" + }, + { + "name": "vmx-vnmi", + "value": false, + "type": "bool" + }, + { + "name": "vmx-rdtscp-exit", + "value": false, + "type": "bool" + }, + { + "name": "amx-complex", + "value": false, + "type": "bool" + }, + { + "name": "nx", + "value": true, + "type": "bool" + }, + { + "name": "vmx-invvpid-all-context", + "value": false, + "type": "bool" + }, + { + "name": "avx-vnni-int8", + "value": false, + "type": "bool" + }, + { + "name": "vmx-vmwrite-vmexit-fields", + "value": false, + "type": "bool" + }, + { + "name": "vmx-page-walk-4", + "value": false, + "type": "bool" + }, + { + "name": "rfds-clear", + "value": false, + "type": "bool" + }, + { + "name": "pause-filter", + "value": false, + "type": "bool" + }, + { + "name": "ds-cpl", + "value": false, + "type": "bool" + }, + { + "name": "succor", + "value": false, + "type": "bool" + }, + { + "name": "fred", + "value": false, + "type": "bool" + }, + { + "name": "fsrm", + "value": true, + "type": "bool" + }, + { + "name": "vmx-exit-load-efer", + "value": false, + "type": "bool" + }, + { + "name": "vmx-mtf", + "value": false, + "type": "bool" + }, + { + "name": "vmx-entry-load-fred", + "value": false, + "type": "bool" + }, + { + "name": "vmx-ept", + "value": false, + "type": "bool" + }, + { + "name": "fb-clear", + "value": false, + "type": "bool" + }, + { + "name": "nodeid-msr", + "value": false, + "type": "bool" + }, + { + "name": "vmx-exit-clear-bndcfgs", + "value": false, + "type": "bool" + }, + { + "name": "smap", + "value": true, + "type": "bool" + }, + { + "name": "vmx-io-bitmap", + "value": false, + "type": "bool" + }, + { + "name": "vmx-preemption-timer", + "value": false, + "type": "bool" + }, + { + "name": "vmx-invept-all-context", + "value": false, + "type": "bool" + }, + { + "name": "vmx-intr-exit", + "value": false, + "type": "bool" + }, + { + "name": "prefetchiti", + "value": false, + "type": "bool" + }, + { + "name": "psdp-no", + "value": true, + "type": "bool" + }, + { + "name": "cr8legacy", + "value": false, + "type": "bool" + }, + { + "name": "xlevel", + "value": 2147483656, + "type": "uint32" + }, + { + "name": "vmx-vpid", + "value": false, + "type": "bool" + }, + { + "name": "vmx-zero-len-inject", + "value": false, + "type": "bool" + }, + { + "name": "pschange-mc-no", + "value": true, + "type": "bool" + }, + { + "name": "virt-ssbd", + "value": false, + "type": "bool" + }, + { + "name": "umip", + "value": true, + "type": "bool" + }, + { + "name": "avx512er", + "value": false, + "type": "bool" + }, + { + "name": "vmx-vintr-pending", + "value": false, + "type": "bool" + }, + { + "name": "xstore-en", + "value": false, + "type": "bool" + }, + { + "name": "avx512vl", + "value": false, + "type": "bool" + }, + { + "name": "ibrs", + "value": false, + "type": "bool" + }, + { + "name": "rsba", + "value": false, + "type": "bool" + }, + { + "name": "cmov", + "value": true, + "type": "bool" + }, + { + "name": "vmx-posted-intr", + "value": false, + "type": "bool" + }, + { + "name": "xcrypt-en", + "value": false, + "type": "bool" + }, + { + "name": "tm2", + "value": false, + "type": "bool" + }, + { + "name": "lbrv", + "value": false, + "type": "bool" + }, + { + "name": "tsc-scale", + "value": false, + "type": "bool" + }, + { + "name": "vmx-secondary-ctls", + "value": false, + "type": "bool" + }, + { + "name": "xsaveerptr", + "value": false, + "type": "bool" + }, + { + "name": "fsgsbase", + "value": true, + "type": "bool" + }, + { + "name": "x-hv-synic-kvm-only", + "value": false, + "type": "bool" + }, + { + "name": "avx512bw", + "value": false, + "type": "bool" + }, + { + "name": "hv-version-id-minor", + "value": 0, + "type": "uint16" + }, + { + "name": "tce", + "value": false, + "type": "bool" + }, + { + "name": "tsc-frequency", + "value": 2496000000, + "type": "int" + }, + { + "name": "smx", + "value": false, + "type": "bool" + }, + { + "name": "hle", + "value": false, + "type": "bool" + }, + { + "name": "monitor", + "value": false, + "type": "bool" + }, + { + "name": "avx512-fp16", + "value": false, + "type": "bool" + }, + { + "name": "sse4a", + "value": false, + "type": "bool" + }, + { + "name": "vpclmulqdq", + "value": true, + "type": "bool" + }, + { + "name": "hv-frequencies", + "value": false, + "type": "bool" + }, + { + "name": "kvm-pv-tlb-flush", + "value": false, + "type": "bool" + }, + { + "name": "vmx-rdtsc-exit", + "value": false, + "type": "bool" + }, + { + "name": "vmx-activity-hlt", + "value": false, + "type": "bool" + }, + { + "name": "vmx-entry-load-bndcfgs", + "value": false, + "type": "bool" + }, + { + "name": "sgx-edeccssa", + "value": false, + "type": "bool" + }, + { + "name": "xsavec", + "value": true, + "type": "bool" + }, + { + "name": "vmx-cr8-load-exit", + "value": false, + "type": "bool" + }, + { + "name": "mds-no", + "value": true, + "type": "bool" + }, + { + "name": "svme-addr-chk", + "value": false, + "type": "bool" + }, + { + "name": "amd-no-ssb", + "value": false, + "type": "bool" + }, + { + "name": "xop", + "value": false, + "type": "bool" + }, + { + "name": "adx", + "value": true, + "type": "bool" + }, + { + "name": "perfmon-v2", + "value": false, + "type": "bool" + }, + { + "name": "hv-version-id-sbranch", + "value": 0, + "type": "uint8" + }, + { + "name": "crash-information", + "type": "GuestPanicInformation" + }, + { + "name": "min-level", + "value": 35, + "type": "uint32" + }, + { + "name": "full-cpuid-auto-level", + "value": true, + "type": "bool" + }, + { + "name": "vmx-exit-ack-intr", + "value": false, + "type": "bool" + }, + { + "name": "vmx-rdseed-exit", + "value": false, + "type": "bool" + }, + { + "name": "pclmulqdq", + "value": true, + "type": "bool" + }, + { + "name": "msr", + "value": true, + "type": "bool" + }, + { + "name": "wrmsrns", + "value": false, + "type": "bool" + }, + { + "name": "kvm-pv-enforce-cpuid", + "value": false, + "type": "bool" + }, + { + "name": "ssb-no", + "value": false, + "type": "bool" + }, + { + "name": "clflush", + "value": true, + "type": "bool" + }, + { + "name": "xlevel2", + "value": 0, + "type": "uint32" + }, + { + "name": "mpx", + "value": false, + "type": "bool" + }, + { + "name": "extapic", + "value": false, + "type": "bool" + }, + { + "name": "lfence-always-serializing", + "value": false, + "type": "bool" + }, + { + "name": "hv-enforce-cpuid", + "value": false, + "type": "bool" + }, + { + "name": "hv-stimer", + "value": false, + "type": "bool" + }, + { + "name": "sgx2", + "value": false, + "type": "bool" + }, + { + "name": "kvm-asyncpf-vmexit", + "value": false, + "type": "bool" + }, + { + "name": "smep", + "value": true, + "type": "bool" + }, + { + "name": "vnmi", + "value": false, + "type": "bool" + }, + { + "name": "vmx-mwait-exit", + "value": false, + "type": "bool" + }, + { + "name": "hv-synic", + "value": false, + "type": "bool" + }, + { + "name": "cx8", + "value": true, + "type": "bool" + }, + { + "name": "vmcb-clean", + "value": false, + "type": "bool" + }, + { + "name": "pku", + "value": true, + "type": "bool" + }, + { + "name": "kvm", + "value": true, + "type": "bool" + }, + { + "name": "srso-no", + "value": false, + "type": "bool" + }, + { + "name": "hv-passthrough", + "value": false, + "type": "bool" + }, + { + "name": "lkgs", + "value": false, + "type": "bool" + }, + { + "name": "tsx-ldtrk", + "value": false, + "type": "bool" + }, + { + "name": "hv-tlbflush-ext", + "value": false, + "type": "bool" + }, + { + "name": "stibp", + "value": false, + "type": "bool" + }, + { + "name": "vmx-cr3-store-noexit", + "value": false, + "type": "bool" + }, + { + "name": "tsx-ctrl", + "value": false, + "type": "bool" + }, + { + "name": "clzero", + "value": false, + "type": "bool" + }, + { + "name": "svm-lock", + "value": false, + "type": "bool" + }, + { + "name": "hv-reenlightenment", + "value": false, + "type": "bool" + }, + { + "name": "x-consistent-cache", + "value": false, + "type": "bool" + }, + { + "name": "avic", + "value": false, + "type": "bool" + }, + { + "name": "hv-vpindex", + "value": false, + "type": "bool" + }, + { + "name": "osvw", + "value": false, + "type": "bool" + }, + { + "name": "sgx-exinfo", + "value": false, + "type": "bool" + }, + { + "name": "legacy-cache", + "value": true, + "type": "bool" + }, + { + "name": "sse", + "value": true, + "type": "bool" + }, + { + "name": "fsrc", + "value": false, + "type": "bool" + }, + { + "name": "ds", + "value": false, + "type": "bool" + }, + { + "name": "pks", + "value": false, + "type": "bool" + }, + { + "name": "vmx-ept-2mb", + "value": false, + "type": "bool" + }, + { + "name": "vmx-true-ctls", + "value": false, + "type": "bool" + }, + { + "name": "movdir64b", + "value": false, + "type": "bool" + }, + { + "name": "vmx-ept-1gb", + "value": false, + "type": "bool" + }, + { + "name": "vmx-invept", + "value": false, + "type": "bool" + }, + { + "name": "ipred-ctrl", + "value": false, + "type": "bool" + }, + { + "name": "vmx-rdrand-exit", + "value": false, + "type": "bool" + }, + { + "name": "acpi", + "value": false, + "type": "bool" + }, + { + "name": "vmx-encls-exit", + "value": false, + "type": "bool" + }, + { + "name": "vmx-cr8-store-exit", + "value": false, + "type": "bool" + }, + { + "name": "sbdr-ssdp-no", + "value": true, + "type": "bool" + }, + { + "name": "its-no", + "value": false, + "type": "bool" + }, + { + "name": "kvm-mmu", + "value": false, + "type": "bool" + }, + { + "name": "3dnowprefetch", + "value": true, + "type": "bool" + }, + { + "name": "nrip-save", + "value": false, + "type": "bool" + }, + { + "name": "gfni", + "value": true, + "type": "bool" + }, + { + "name": "flush-l1d", + "value": false, + "type": "bool" + }, + { + "name": "kvm-msi-ext-dest-id", + "value": false, + "type": "bool" + }, + { + "name": "fzrm", + "value": false, + "type": "bool" + }, + { + "name": "serialize", + "value": true, + "type": "bool" + }, + { + "name": "avx512bitalg", + "value": false, + "type": "bool" + }, + { + "name": "rdseed", + "value": true, + "type": "bool" + }, + { + "name": "sha-ni", + "value": true, + "type": "bool" + }, + { + "name": "ace2", + "value": false, + "type": "bool" + }, + { + "name": "lmce", + "value": false, + "type": "bool" + }, + { + "name": "avx10-version", + "value": 0, + "type": "uint8" + }, + { + "name": "topoext", + "value": false, + "type": "bool" + }, + { + "name": "f16c", + "value": true, + "type": "bool" + }, + { + "name": "waitpkg", + "value": false, + "type": "bool" + }, + { + "name": "avx512-4fmaps", + "value": false, + "type": "bool" + }, + { + "name": "fbsdp-no", + "value": true, + "type": "bool" + }, + { + "name": "avx", + "value": true, + "type": "bool" + }, + { + "name": "sse2", + "value": true, + "type": "bool" + }, + { + "name": "rdctl-no", + "value": true, + "type": "bool" + }, + { + "name": "mmx", + "value": true, + "type": "bool" + }, + { + "name": "hv-version-id-major", + "value": 10, + "type": "uint16" + }, + { + "name": "level", + "value": 35, + "type": "uint32" + }, + { + "name": "avx512vnni", + "value": false, + "type": "bool" + }, + { + "name": "pni", + "value": true, + "type": "bool" + }, + { + "name": "movbe", + "value": true, + "type": "bool" + }, + { + "name": "vmx-ple", + "value": false, + "type": "bool" + }, + { + "name": "mmxext", + "value": false, + "type": "bool" + }, + { + "name": "lbr-fmt", + "value": 18446744073709551552, + "type": "uint64" + }, + { + "name": "bus-lock-detect", + "value": false, + "type": "bool" + }, + { + "name": "vmx-apicv-vid", + "value": false, + "type": "bool" + }, + { + "name": "vmx-page-walk-5", + "value": false, + "type": "bool" + }, + { + "name": "flushbyasid", + "value": false, + "type": "bool" + }, + { + "name": "rdtscp", + "value": true, + "type": "bool" + }, + { + "name": "clwb", + "value": true, + "type": "bool" + }, + { + "name": "kvm-pv-sched-yield", + "value": false, + "type": "bool" + }, + { + "name": "kvm-asyncpf", + "value": true, + "type": "bool" + }, + { + "name": "avx-vnni-int16", + "value": false, + "type": "bool" + }, + { + "name": "decodeassists", + "value": false, + "type": "bool" + }, + { + "name": "vmx-wbinvd-exit", + "value": false, + "type": "bool" + }, + { + "name": "pat", + "value": true, + "type": "bool" + }, + { + "name": "vmx-exit-clear-rtit-ctl", + "value": false, + "type": "bool" + }, + { + "name": "invpcid", + "value": true, + "type": "bool" + }, + { + "name": "pdpe1gb", + "value": true, + "type": "bool" + }, + { + "name": "vmx-exit-save-pat", + "value": false, + "type": "bool" + }, + { + "name": "unavailable-features", + "value": [ + "bus-lock-detect", + "cmpccxadd", + "avx-ifma", + "wbnoinvd", + "pbrsb-no", + "avx-vnni-int8", + "avx-ne-convert", + "mcdt-no" + ], + "type": "strList" + }, + { + "name": "tsc-adjust", + "value": false, + "type": "bool" + }, + { + "name": "vmx-enable-user-wait-pause", + "value": false, + "type": "bool" + }, + { + "name": "ht", + "value": false, + "type": "bool" + }, + { + "name": "amx-tile", + "value": false, + "type": "bool" + }, + { + "name": "clflushopt", + "value": true, + "type": "bool" + }, + { + "name": "hv-xmm-input", + "value": false, + "type": "bool" + }, + { + "name": "vmx-tsc-offset", + "value": false, + "type": "bool" + }, + { + "name": "ssbd", + "value": true, + "type": "bool" + }, + { + "name": "3dnowext", + "value": false, + "type": "bool" + }, + { + "name": "xtpr", + "value": false, + "type": "bool" + }, + { + "name": "sgx", + "value": false, + "type": "bool" + }, + { + "name": "hv-crash", + "value": false, + "type": "bool" + }, + { + "name": "xsave", + "value": true, + "type": "bool" + }, + { + "name": "pdcm", + "value": false, + "type": "bool" + }, + { + "name": "hv-vendor-id", + "value": "Microsoft Hv", + "type": "str" + }, + { + "name": "est", + "value": false, + "type": "bool" + }, + { + "name": "vendor", + "value": "GenuineIntel", + "type": "string" + }, + { + "name": "pge", + "value": true, + "type": "bool" + }, + { + "name": "pcommit", + "value": false, + "type": "bool" + }, + { + "name": "ibs", + "value": false, + "type": "bool" + }, + { + "name": "tsc-deadline", + "value": true, + "type": "bool" + }, + { + "name": "sgx-mode64", + "value": false, + "type": "bool" + }, + { + "name": "kvmclock-stable-bit", + "value": true, + "type": "bool" + }, + { + "name": "misalignsse", + "value": false, + "type": "bool" + }, + { + "name": "vmx-msr-bitmap", + "value": false, + "type": "bool" + }, + { + "name": "check", + "value": true, + "type": "bool" + }, + { + "name": "hv-time", + "value": false, + "type": "bool" + }, + { + "name": "perfctr-nb", + "value": false, + "type": "bool" + }, + { + "name": "hv-avic", + "value": false, + "type": "bool" + }, + { + "name": "vmx-vmfunc", + "value": false, + "type": "bool" + }, + { + "name": "phys-bits", + "value": 40, + "type": "uint32" + }, + { + "name": "apic", + "value": true, + "type": "bool" + }, + { + "name": "vmx-exit-save-preemption-timer", + "value": false, + "type": "bool" + }, + { + "name": "prefetchi", + "value": false, + "type": "bool" + }, + { + "name": "vmx-nmi-exit", + "value": false, + "type": "bool" + }, + { + "name": "avx512vbmi", + "value": false, + "type": "bool" + }, + { + "name": "thread-id", + "value": 0, + "type": "int32" + }, + { + "name": "min-xlevel", + "value": 2147483656, + "type": "uint32" + }, + { + "name": "socket-id", + "value": 0, + "type": "int32" + }, + { + "name": "vmx-exit-nosave-debugctl", + "value": false, + "type": "bool" + }, + { + "name": "bmi2", + "value": true, + "type": "bool" + }, + { + "name": "vmx-xsaves", + "value": false, + "type": "bool" + }, + { + "name": "avx512f", + "value": false, + "type": "bool" + }, + { + "name": "arch-capabilities", + "value": true, + "type": "bool" + }, + { + "name": "vmx-exit-load-perf-global-ctrl", + "value": false, + "type": "bool" + }, + { + "name": "vmx-pml", + "value": false, + "type": "bool" + }, + { + "name": "vmx-entry-load-perf-global-ctrl", + "value": false, + "type": "bool" + }, + { + "name": "ace2-en", + "value": false, + "type": "bool" + }, + { + "name": "wdt", + "value": false, + "type": "bool" + }, + { + "name": "intel-pt", + "value": false, + "type": "bool" + }, + { + "name": "kvm-nopiodelay", + "value": true, + "type": "bool" + }, + { + "name": "cmpccxadd", + "value": false, + "type": "bool" + }, + { + "name": "v-vmsave-vmload", + "value": false, + "type": "bool" + }, + { + "name": "avx512pf", + "value": false, + "type": "bool" + }, + { + "name": "bmi1", + "value": true, + "type": "bool" + }, + { + "name": "enforce", + "value": false, + "type": "bool" + }, + { + "name": "sse4.2", + "value": true, + "type": "bool" + }, + { + "name": "hv-syndbg", + "value": false, + "type": "bool" + }, + { + "name": "ibrs-all", + "value": true, + "type": "bool" + }, + { + "name": "xgetbv1", + "value": true, + "type": "bool" + }, + { + "name": "mcdt-no", + "value": false, + "type": "bool" + }, + { + "name": "spec-ctrl", + "value": true, + "type": "bool" + }, + { + "name": "3dnow", + "value": false, + "type": "bool" + }, + { + "name": "kvm-asyncpf-int", + "value": false, + "type": "bool" + }, + { + "name": "vmx", + "value": false, + "type": "bool" + }, + { + "name": "la57", + "value": false, + "type": "bool" + }, + { + "name": "hv-no-nonarch-coresharing", + "value": "off", + "type": "OnOffAuto" + }, + { + "name": "amx-bf16", + "value": false, + "type": "bool" + }, + { + "name": "sse4.1", + "value": true, + "type": "bool" + }, + { + "name": "xsaveopt", + "value": true, + "type": "bool" + }, + { + "name": "hv-relaxed", + "value": false, + "type": "bool" + }, + { + "name": "hv-version-id-snumber", + "value": 0, + "type": "uint32" + }, + { + "name": "stibp-always-on", + "value": false, + "type": "bool" + }, + { + "name": "sbpb", + "value": false, + "type": "bool" + }, + { + "name": "avx-vnni", + "value": true, + "type": "bool" + }, + { + "name": "fxsr", + "value": true, + "type": "bool" + }, + { + "name": "phe-en", + "value": false, + "type": "bool" + }, + { + "name": "hv-vapic", + "value": false, + "type": "bool" + }, + { + "name": "hv-ipi", + "value": false, + "type": "bool" + }, + { + "name": "null-sel-clr-base", + "value": false, + "type": "bool" + }, + { + "name": "hypervisor", + "value": true, + "type": "bool" + }, + { + "name": "avx10-256", + "value": false, + "type": "bool" + }, + { + "name": "aes", + "value": true, + "type": "bool" + }, + { + "name": "amd-ssbd", + "value": false, + "type": "bool" + }, + { + "name": "core-id", + "value": 0, + "type": "int32" + }, + { + "name": "de", + "value": true, + "type": "bool" + }, + { + "name": "ss", + "value": false, + "type": "bool" + }, + { + "name": "vmx-movdr-exit", + "value": false, + "type": "bool" + }, + { + "name": "fma", + "value": true, + "type": "bool" + }, + { + "name": "lahf_lm", + "value": true, + "type": "bool" + }, + { + "name": "lapic", + "value": "/machine/unattached/device[0]/lapic", + "type": "child<kvm-apic>" + }, + { + "name": "tsc_adjust", + "value": false, + "type": "bool" + }, + { + "name": "svm_lock", + "value": false, + "type": "bool" + }, + { + "name": "vmcb_clean", + "value": false, + "type": "bool" + }, + { + "name": "nrip_save", + "value": false, + "type": "bool" + }, + { + "name": "lbr_fmt", + "value": 18446744073709551552, + "type": "uint64" + }, + { + "name": "pclmuldq", + "value": true, + "type": "bool" + }, + { + "name": "ffxsr", + "value": false, + "type": "bool" + }, + { + "name": "sse4-2", + "value": true, + "type": "bool" + }, + { + "name": "kvm_asyncpf_int", + "value": false, + "type": "bool" + }, + { + "name": "cmp_legacy", + "value": false, + "type": "bool" + }, + { + "name": "kvm_nopiodelay", + "value": true, + "type": "bool" + }, + { + "name": "perfctr_core", + "value": false, + "type": "bool" + }, + { + "name": "kvm_pv_unhalt", + "value": false, + "type": "bool" + }, + { + "name": "ds_cpl", + "value": false, + "type": "bool" + }, + { + "name": "sse4-1", + "value": true, + "type": "bool" + }, + { + "name": "perfctr_nb", + "value": false, + "type": "bool" + }, + { + "name": "sse3", + "value": true, + "type": "bool" + }, + { + "name": "tsc_scale", + "value": false, + "type": "bool" + }, + { + "name": "pause_filter", + "value": false, + "type": "bool" + }, + { + "name": "kvm_asyncpf", + "value": true, + "type": "bool" + }, + { + "name": "kvm_steal_time", + "value": true, + "type": "bool" + }, + { + "name": "feature-words", + "value": [ + { + "cpuid-register": "EBX", + "cpuid-input-ecx": 0, + "cpuid-input-eax": 36, + "features": 0 + }, + { + "cpuid-register": "EDX", + "cpuid-input-ecx": 2, + "cpuid-input-eax": 7, + "features": 0 + }, + { + "cpuid-register": "EDX", + "cpuid-input-ecx": 1, + "cpuid-input-eax": 7, + "features": 0 + }, + { + "cpuid-register": "ECX", + "cpuid-input-ecx": 1, + "cpuid-input-eax": 7, + "features": 0 + }, + { + "cpuid-register": "EDX", + "cpuid-input-ecx": 1, + "cpuid-input-eax": 13, + "features": 0 + }, + { + "cpuid-register": "ECX", + "cpuid-input-ecx": 1, + "cpuid-input-eax": 13, + "features": 0 + }, + { + "cpuid-register": "EAX", + "cpuid-input-ecx": 1, + "cpuid-input-eax": 18, + "features": 0 + }, + { + "cpuid-register": "EBX", + "cpuid-input-ecx": 0, + "cpuid-input-eax": 18, + "features": 0 + }, + { + "cpuid-register": "EAX", + "cpuid-input-ecx": 0, + "cpuid-input-eax": 18, + "features": 0 + }, + { + "cpuid-register": "ECX", + "cpuid-input-ecx": 0, + "cpuid-input-eax": 20, + "features": 0 + }, + { + "cpuid-register": "EDX", + "cpuid-input-ecx": 0, + "cpuid-input-eax": 13, + "features": 0 + }, + { + "cpuid-register": "EAX", + "cpuid-input-ecx": 0, + "cpuid-input-eax": 13, + "features": 519 + }, + { + "cpuid-register": "EAX", + "cpuid-input-eax": 6, + "features": 4 + }, + { + "cpuid-register": "EAX", + "cpuid-input-ecx": 1, + "cpuid-input-eax": 13, + "features": 15 + }, + { + "cpuid-register": "EDX", + "cpuid-input-eax": 2147483658, + "features": 0 + }, + { + "cpuid-register": "EDX", + "cpuid-input-eax": 1073741825, + "features": 0 + }, + { + "cpuid-register": "EAX", + "cpuid-input-eax": 1073741825, + "features": 16777339 + }, + { + "cpuid-register": "EDX", + "cpuid-input-eax": 3221225473, + "features": 0 + }, + { + "cpuid-register": "EAX", + "cpuid-input-eax": 2147483682, + "features": 0 + }, + { + "cpuid-register": "EBX", + "cpuid-input-eax": 2147483681, + "features": 0 + }, + { + "cpuid-register": "EAX", + "cpuid-input-eax": 2147483681, + "features": 0 + }, + { + "cpuid-register": "EBX", + "cpuid-input-eax": 2147483656, + "features": 0 + }, + { + "cpuid-register": "EDX", + "cpuid-input-eax": 2147483655, + "features": 0 + }, + { + "cpuid-register": "EBX", + "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": "EAX", + "cpuid-input-ecx": 1, + "cpuid-input-eax": 7, + "features": 2064 + }, + { + "cpuid-register": "EDX", + "cpuid-input-ecx": 0, + "cpuid-input-eax": 7, + "features": 2751479824 + }, + { + "cpuid-register": "ECX", + "cpuid-input-ecx": 0, + "cpuid-input-eax": 7, + "features": 4196108 + }, + { + "cpuid-register": "EBX", + "cpuid-input-ecx": 0, + "cpuid-input-eax": 7, + "features": 563873705 + }, + { + "cpuid-register": "ECX", + "cpuid-input-eax": 1, + "features": 4160369155 + }, + { + "cpuid-register": "EDX", + "cpuid-input-eax": 1, + "features": 126614527 + } + ], + "type": "X86CPUFeatureWordInfo" + }, + { + "name": "kvm_mmu", + "value": false, + "type": "bool" + }, + { + "name": "filtered-features", + "value": [ + { + "cpuid-register": "EBX", + "cpuid-input-ecx": 0, + "cpuid-input-eax": 36, + "features": 0 + }, + { + "cpuid-register": "EDX", + "cpuid-input-ecx": 2, + "cpuid-input-eax": 7, + "features": 32 + }, + { + "cpuid-register": "EDX", + "cpuid-input-ecx": 1, + "cpuid-input-eax": 7, + "features": 48 + }, + { + "cpuid-register": "ECX", + "cpuid-input-ecx": 1, + "cpuid-input-eax": 7, + "features": 0 + }, + { + "cpuid-register": "EDX", + "cpuid-input-ecx": 1, + "cpuid-input-eax": 13, + "features": 0 + }, + { + "cpuid-register": "ECX", + "cpuid-input-ecx": 1, + "cpuid-input-eax": 13, + "features": 0 + }, + { + "cpuid-register": "EAX", + "cpuid-input-ecx": 1, + "cpuid-input-eax": 18, + "features": 0 + }, + { + "cpuid-register": "EBX", + "cpuid-input-ecx": 0, + "cpuid-input-eax": 18, + "features": 0 + }, + { + "cpuid-register": "EAX", + "cpuid-input-ecx": 0, + "cpuid-input-eax": 18, + "features": 0 + }, + { + "cpuid-register": "ECX", + "cpuid-input-ecx": 0, + "cpuid-input-eax": 20, + "features": 0 + }, + { + "cpuid-register": "EDX", + "cpuid-input-ecx": 0, + "cpuid-input-eax": 13, + "features": 0 + }, + { + "cpuid-register": "EAX", + "cpuid-input-ecx": 0, + "cpuid-input-eax": 13, + "features": 0 + }, + { + "cpuid-register": "EAX", + "cpuid-input-eax": 6, + "features": 0 + }, + { + "cpuid-register": "EAX", + "cpuid-input-ecx": 1, + "cpuid-input-eax": 13, + "features": 0 + }, + { + "cpuid-register": "EDX", + "cpuid-input-eax": 2147483658, + "features": 0 + }, + { + "cpuid-register": "EDX", + "cpuid-input-eax": 1073741825, + "features": 0 + }, + { + "cpuid-register": "EAX", + "cpuid-input-eax": 1073741825, + "features": 0 + }, + { + "cpuid-register": "EDX", + "cpuid-input-eax": 3221225473, + "features": 0 + }, + { + "cpuid-register": "EAX", + "cpuid-input-eax": 2147483682, + "features": 0 + }, + { + "cpuid-register": "EBX", + "cpuid-input-eax": 2147483681, + "features": 0 + }, + { + "cpuid-register": "EAX", + "cpuid-input-eax": 2147483681, + "features": 0 + }, + { + "cpuid-register": "EBX", + "cpuid-input-eax": 2147483656, + "features": 512 + }, + { + "cpuid-register": "EDX", + "cpuid-input-eax": 2147483655, + "features": 0 + }, + { + "cpuid-register": "EBX", + "cpuid-input-eax": 2147483655, + "features": 0 + }, + { + "cpuid-register": "ECX", + "cpuid-input-eax": 2147483649, + "features": 0 + }, + { + "cpuid-register": "EDX", + "cpuid-input-eax": 2147483649, + "features": 0 + }, + { + "cpuid-register": "EAX", + "cpuid-input-ecx": 1, + "cpuid-input-eax": 7, + "features": 8388736 + }, + { + "cpuid-register": "EDX", + "cpuid-input-ecx": 0, + "cpuid-input-eax": 7, + "features": 0 + }, + { + "cpuid-register": "ECX", + "cpuid-input-ecx": 0, + "cpuid-input-eax": 7, + "features": 16777216 + }, + { + "cpuid-register": "EBX", + "cpuid-input-ecx": 0, + "cpuid-input-eax": 7, + "features": 0 + }, + { + "cpuid-register": "ECX", + "cpuid-input-eax": 1, + "features": 0 + }, + { + "cpuid-register": "EDX", + "cpuid-input-eax": 1, + "features": 0 + } + ], + "type": "X86CPUFeatureWordInfo" + }, + { + "name": "sse4_2", + "value": true, + "type": "bool" + }, + { + "name": "kvm_poll_control", + "value": false, + "type": "bool" + }, + { + "name": "fxsr_opt", + "value": false, + "type": "bool" + }, + { + "name": "nodeid_msr", + "value": false, + "type": "bool" + }, + { + "name": "kvm_pv_eoi", + "value": true, + "type": "bool" + }, + { + "name": "i64", + "value": true, + "type": "bool" + }, + { + "name": "hv-apicv", + "value": false, + "type": "bool" + }, + { + "name": "xd", + "value": true, + "type": "bool" + }, + { + "name": "sse4_1", + "value": true, + "type": "bool" + } + ] + } + ], + "id": "libvirt-1" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "unavailable-features" + }, + "id": "libvirt-2" +} + +{ + "return": [ + "bus-lock-detect", + "cmpccxadd", + "avx-ifma", + "wbnoinvd", + "pbrsb-no", + "avx-vnni-int8", + "avx-ne-convert", + "mcdt-no" + ], + "id": "libvirt-2" +} diff --git a/tests/qemumonitorjsondata/get-guest-cpu-SkylakeClient.json b/tests/qemumonitorjsondata/get-guest-cpu-SkylakeClient.json new file mode 100644 index 0000000000..76b66ded20 --- /dev/null +++ b/tests/qemumonitorjsondata/get-guest-cpu-SkylakeClient.json @@ -0,0 +1,2967 @@ +{ + "execute": "qom-list-get", + "arguments": { + "paths": [ + "/machine/unattached/device[0]" + ] + }, + "id": "libvirt-1" +} + +{ + "return": [ + { + "properties": [ + { + "name": "type", + "value": "Skylake-Client-v4-x86_64-cpu", + "type": "string" + }, + { + "name": "parent_bus", + "value": "", + "type": "link<bus>" + }, + { + "name": "realized", + "value": true, + "type": "bool" + }, + { + "name": "hotplugged", + "value": false, + "type": "bool" + }, + { + "name": "hotpluggable", + "value": true, + "type": "bool" + }, + { + "name": "memory", + "value": "/machine/unattached/system[0]", + "type": "link<memory-region>" + }, + { + "name": "legacy-memory", + "type": "str" + }, + { + "name": "start-powered-off", + "value": false, + "type": "bool" + }, + { + "name": "vmx-invept-single-context", + "value": false, + "type": "bool" + }, + { + "name": "core-capability", + "value": false, + "type": "bool" + }, + { + "name": "popcnt", + "value": true, + "type": "bool" + }, + { + "name": "sgx-debug", + "value": false, + "type": "bool" + }, + { + "name": "kvm-poll-control", + "value": false, + "type": "bool" + }, + { + "name": "dtes64", + "value": false, + "type": "bool" + }, + { + "name": "vmx-invvpid-single-addr", + "value": false, + "type": "bool" + }, + { + "name": "xstore", + "value": false, + "type": "bool" + }, + { + "name": "min-xlevel2", + "value": 0, + "type": "uint32" + }, + { + "name": "stepping", + "value": 3, + "type": "int" + }, + { + "name": "x-vendor-cpuid-only-v2", + "value": false, + "type": "bool" + }, + { + "name": "sm4", + "value": false, + "type": "bool" + }, + { + "name": "hv-emsr-bitmap", + "value": false, + "type": "bool" + }, + { + "name": "pse36", + "value": true, + "type": "bool" + }, + { + "name": "avx512-4vnniw", + "value": false, + "type": "bool" + }, + { + "name": "x-intel-pt-auto-level", + "value": true, + "type": "bool" + }, + { + "name": "fma4", + "value": false, + "type": "bool" + }, + { + "name": "avx512-vp2intersect", + "value": false, + "type": "bool" + }, + { + "name": "avx2", + "value": true, + "type": "bool" + }, + { + "name": "amd-psfd", + "value": false, + "type": "bool" + }, + { + "name": "amd-stibp", + "value": false, + "type": "bool" + }, + { + "name": "sgxlc", + "value": false, + "type": "bool" + }, + { + "name": "sm3", + "value": false, + "type": "bool" + }, + { + "name": "family", + "value": 6, + "type": "int" + }, + { + "name": "vmx-ept-advanced-exitinfo", + "value": false, + "type": "bool" + }, + { + "name": "vmx-store-lma", + "value": false, + "type": "bool" + }, + { + "name": "msr-imm", + "value": false, + "type": "bool" + }, + { + "name": "vmware-cpuid-freq", + "value": true, + "type": "bool" + }, + { + "name": "hv-spinlocks", + "value": 4294967295, + "type": "uint32" + }, + { + "name": "x-force-cpuid-0x1f", + "value": false, + "type": "bool" + }, + { + "name": "ddpd-u", + "value": false, + "type": "bool" + }, + { + "name": "vmx-nested-exception", + "value": false, + "type": "bool" + }, + { + "name": "vmx-entry-noload-debugctl", + "value": false, + "type": "bool" + }, + { + "name": "bhi-no", + "value": false, + "type": "bool" + }, + { + "name": "amx-fp16", + "value": false, + "type": "bool" + }, + { + "name": "erms", + "value": true, + "type": "bool" + }, + { + "name": "vaes", + "value": false, + "type": "bool" + }, + { + "name": "vmx-eptad", + "value": false, + "type": "bool" + }, + { + "name": "vmx-activity-wait-sipi", + "value": false, + "type": "bool" + }, + { + "name": "vmx-flexpriority", + "value": false, + "type": "bool" + }, + { + "name": "hv-reset", + "value": false, + "type": "bool" + }, + { + "name": "rdrand", + "value": true, + "type": "bool" + }, + { + "name": "lam", + "value": false, + "type": "bool" + }, + { + "name": "vmx-pause-exit", + "value": false, + "type": "bool" + }, + { + "name": "vmx-shadow-vmcs", + "value": false, + "type": "bool" + }, + { + "name": "model", + "value": 94, + "type": "int" + }, + { + "name": "avx512-vpopcntdq", + "value": false, + "type": "bool" + }, + { + "name": "xcrypt", + "value": false, + "type": "bool" + }, + { + "name": "tbm", + "value": false, + "type": "bool" + }, + { + "name": "movdiri", + "value": false, + "type": "bool" + }, + { + "name": "vmx-monitor-exit", + "value": false, + "type": "bool" + }, + { + "name": "kvm-pv-eoi", + "value": true, + "type": "bool" + }, + { + "name": "hv-version-id-spack", + "value": 0, + "type": "uint32" + }, + { + "name": "lm", + "value": true, + "type": "bool" + }, + { + "name": "x-vendor-cpuid-only", + "value": true, + "type": "bool" + }, + { + "name": "pbrsb-no", + "value": false, + "type": "bool" + }, + { + "name": "vmx-unrestricted-guest", + "value": false, + "type": "bool" + }, + { + "name": "host-phys-bits-limit", + "value": 0, + "type": "uint8" + }, + { + "name": "pae", + "value": true, + "type": "bool" + }, + { + "name": "ssse3", + "value": true, + "type": "bool" + }, + { + "name": "hv-runtime", + "value": false, + "type": "bool" + }, + { + "name": "phe", + "value": false, + "type": "bool" + }, + { + "name": "guest-phys-bits", + "value": 0, + "type": "uint32" + }, + { + "name": "host-phys-bits", + "value": false, + "type": "bool" + }, + { + "name": "taa-no", + "value": false, + "type": "bool" + }, + { + "name": "sgx-aex-notify", + "value": false, + "type": "bool" + }, + { + "name": "full-width-write", + "value": false, + "type": "bool" + }, + { + "name": "arat", + "value": true, + "type": "bool" + }, + { + "name": "avx512vbmi2", + "value": false, + "type": "bool" + }, + { + "name": "sha512", + "value": false, + "type": "bool" + }, + { + "name": "arch-lbr", + "value": false, + "type": "bool" + }, + { + "name": "vmx-vnmi-pending", + "value": false, + "type": "bool" + }, + { + "name": "vmx-any-errcode", + "value": false, + "type": "bool" + }, + { + "name": "x2apic", + "value": true, + "type": "bool" + }, + { + "name": "npt", + "value": false, + "type": "bool" + }, + { + "name": "pmm-en", + "value": false, + "type": "bool" + }, + { + "name": "vmx-invpcid-exit", + "value": false, + "type": "bool" + }, + { + "name": "avx512ifma", + "value": false, + "type": "bool" + }, + { + "name": "ibpb-brtype", + "value": false, + "type": "bool" + }, + { + "name": "model-id", + "value": "Intel Core Processor (Skylake, IBRS, no TSX)", + "type": "string" + }, + { + "name": "ucode-rev", + "value": 4294967296, + "type": "uint64" + }, + { + "name": "hv-evmcs", + "value": false, + "type": "bool" + }, + { + "name": "srso-user-kernel-no", + "value": false, + "type": "bool" + }, + { + "name": "vmx-io-exit", + "value": false, + "type": "bool" + }, + { + "name": "tsc", + "value": true, + "type": "bool" + }, + { + "name": "x-force-features", + "value": false, + "type": "bool" + }, + { + "name": "vmx-ins-outs", + "value": false, + "type": "bool" + }, + { + "name": "dca", + "value": false, + "type": "bool" + }, + { + "name": "vmx-apicv-x2apic", + "value": false, + "type": "bool" + }, + { + "name": "perfctr-core", + "value": false, + "type": "bool" + }, + { + "name": "ia64", + "value": false, + "type": "bool" + }, + { + "name": "fdp-excptn-only", + "value": false, + "type": "bool" + }, + { + "name": "hv-stimer-direct", + "value": false, + "type": "bool" + }, + { + "name": "gds-no", + "value": false, + "type": "bool" + }, + { + "name": "vmx-exit-secondary-ctls", + "value": false, + "type": "bool" + }, + { + "name": "vmx-cr3-load-noexit", + "value": false, + "type": "bool" + }, + { + "name": "rfds-no", + "value": false, + "type": "bool" + }, + { + "name": "pmu", + "value": false, + "type": "bool" + }, + { + "name": "vmx-entry-load-rtit-ctl", + "value": false, + "type": "bool" + }, + { + "name": "kvmclock", + "value": true, + "type": "bool" + }, + { + "name": "avx10", + "value": false, + "type": "bool" + }, + { + "name": "vmx-invept-single-context-noglobals", + "value": false, + "type": "bool" + }, + { + "name": "xen-vapic", + "value": false, + "type": "bool" + }, + { + "name": "md-clear", + "value": false, + "type": "bool" + }, + { + "name": "invtsc", + "value": false, + "type": "bool" + }, + { + "name": "pn", + "value": false, + "type": "bool" + }, + { + "name": "avx512cd", + "value": false, + "type": "bool" + }, + { + "name": "cmp-legacy", + "value": false, + "type": "bool" + }, + { + "name": "cx16", + "value": true, + "type": "bool" + }, + { + "name": "avx512dq", + "value": false, + "type": "bool" + }, + { + "name": "abm", + "value": true, + "type": "bool" + }, + { + "name": "vmx-activity-shutdown", + "value": false, + "type": "bool" + }, + { + "name": "auto-ibrs", + "value": false, + "type": "bool" + }, + { + "name": "kvm-pv-ipi", + "value": false, + "type": "bool" + }, + { + "name": "avx10-128", + "value": false, + "type": "bool" + }, + { + "name": "vmx-apicv-register", + "value": false, + "type": "bool" + }, + { + "name": "fxsr-opt", + "value": false, + "type": "bool" + }, + { + "name": "skip-l1dfl-vmentry", + "value": false, + "type": "bool" + }, + { + "name": "fill-mtrr-mask", + "value": true, + "type": "bool" + }, + { + "name": "x-migrate-smi-count", + "value": true, + "type": "bool" + }, + { + "name": "wbnoinvd", + "value": false, + "type": "bool" + }, + { + "name": "sgx1", + "value": false, + "type": "bool" + }, + { + "name": "rdpid", + "value": false, + "type": "bool" + }, + { + "name": "pcid", + "value": true, + "type": "bool" + }, + { + "name": "bhi-ctrl", + "value": false, + "type": "bool" + }, + { + "name": "syscall", + "value": true, + "type": "bool" + }, + { + "name": "pse", + "value": true, + "type": "bool" + }, + { + "name": "rrsba-ctrl", + "value": false, + "type": "bool" + }, + { + "name": "avx-ne-convert", + "value": false, + "type": "bool" + }, + { + "name": "xsaves", + "value": true, + "type": "bool" + }, + { + "name": "vmx-entry-load-pat", + "value": false, + "type": "bool" + }, + { + "name": "vgif", + "value": false, + "type": "bool" + }, + { + "name": "mce", + "value": true, + "type": "bool" + }, + { + "name": "xfd", + "value": false, + "type": "bool" + }, + { + "name": "node-id", + "value": -1, + "type": "int32" + }, + { + "name": "sgx-tokenkey", + "value": false, + "type": "bool" + }, + { + "name": "ibpb", + "value": false, + "type": "bool" + }, + { + "name": "x-amd-topoext-features-only", + "value": true, + "type": "bool" + }, + { + "name": "vmx-apicv-xapic", + "value": false, + "type": "bool" + }, + { + "name": "vmx-hlt-exit", + "value": false, + "type": "bool" + }, + { + "name": "lwp", + "value": false, + "type": "bool" + }, + { + "name": "eraps", + "value": false, + "type": "bool" + }, + { + "name": "cldemote", + "value": false, + "type": "bool" + }, + { + "name": "vmx-exit-load-pkrs", + "value": false, + "type": "bool" + }, + { + "name": "rtm", + "value": false, + "type": "bool" + }, + { + "name": "hv-tlbflush", + "value": false, + "type": "bool" + }, + { + "name": "kvm-steal-time", + "value": true, + "type": "bool" + }, + { + "name": "cpuid-0xb", + "value": true, + "type": "bool" + }, + { + "name": "fsrs", + "value": false, + "type": "bool" + }, + { + "name": "sgx-provisionkey", + "value": false, + "type": "bool" + }, + { + "name": "vmx-eptp-switching", + "value": false, + "type": "bool" + }, + { + "name": "vmx-invlpg-exit", + "value": false, + "type": "bool" + }, + { + "name": "vmx-entry-load-efer", + "value": false, + "type": "bool" + }, + { + "name": "level-func7", + "value": 0, + "type": "uint32" + }, + { + "name": "die-id", + "value": 0, + "type": "int32" + }, + { + "name": "vmx-exit-save-efer", + "value": false, + "type": "bool" + }, + { + "name": "x-l1-cache-per-thread", + "value": true, + "type": "bool" + }, + { + "name": "vme", + "value": true, + "type": "bool" + }, + { + "name": "kvm-pv-unhalt", + "value": false, + "type": "bool" + }, + { + "name": "vmx-desc-exit", + "value": false, + "type": "bool" + }, + { + "name": "sgx-kss", + "value": false, + "type": "bool" + }, + { + "name": "vmx-invvpid", + "value": false, + "type": "bool" + }, + { + "name": "vmx-entry-ia32e-mode", + "value": false, + "type": "bool" + }, + { + "name": "svm", + "value": false, + "type": "bool" + }, + { + "name": "kvm-hint-dedicated", + "value": false, + "type": "bool" + }, + { + "name": "vmx-ept-execonly", + "value": false, + "type": "bool" + }, + { + "name": "avx-ifma", + "value": false, + "type": "bool" + }, + { + "name": "module-id", + "value": 0, + "type": "int32" + }, + { + "name": "mca", + "value": true, + "type": "bool" + }, + { + "name": "vmx-tsc-scaling", + "value": false, + "type": "bool" + }, + { + "name": "mtrr", + "value": true, + "type": "bool" + }, + { + "name": "cid", + "value": false, + "type": "bool" + }, + { + "name": "pfthreshold", + "value": false, + "type": "bool" + }, + { + "name": "pmm", + "value": false, + "type": "bool" + }, + { + "name": "lahf-lm", + "value": true, + "type": "bool" + }, + { + "name": "zero-fcs-fds", + "value": false, + "type": "bool" + }, + { + "name": "hv-version-id-build", + "value": 14393, + "type": "uint32" + }, + { + "name": "vmx-entry-load-pkrs", + "value": false, + "type": "bool" + }, + { + "name": "tcg-cpuid", + "value": true, + "type": "bool" + }, + { + "name": "no-nested-data-bp", + "value": false, + "type": "bool" + }, + { + "name": "legacy-multi-node", + "value": false, + "type": "bool" + }, + { + "name": "x-hv-max-vps", + "value": -1, + "type": "int32" + }, + { + "name": "tm", + "value": false, + "type": "bool" + }, + { + "name": "pbe", + "value": false, + "type": "bool" + }, + { + "name": "amx-int8", + "value": false, + "type": "bool" + }, + { + "name": "vmx-rdpmc-exit", + "value": false, + "type": "bool" + }, + { + "name": "intel-psfd", + "value": false, + "type": "bool" + }, + { + "name": "fs-gs-base-ns", + "value": false, + "type": "bool" + }, + { + "name": "split-lock-detect", + "value": false, + "type": "bool" + }, + { + "name": "apic-id", + "value": 0, + "type": "uint32" + }, + { + "name": "fpu", + "value": true, + "type": "bool" + }, + { + "name": "skinit", + "value": false, + "type": "bool" + }, + { + "name": "l3-cache", + "value": true, + "type": "bool" + }, + { + "name": "sep", + "value": true, + "type": "bool" + }, + { + "name": "vmx-exit-load-pat", + "value": false, + "type": "bool" + }, + { + "name": "intel-pt-lip", + "value": false, + "type": "bool" + }, + { + "name": "avx10-512", + "value": false, + "type": "bool" + }, + { + "name": "hv-tlbflush-direct", + "value": false, + "type": "bool" + }, + { + "name": "avx512-bf16", + "value": false, + "type": "bool" + }, + { + "name": "overflow-recov", + "value": false, + "type": "bool" + }, + { + "name": "vmx-vnmi", + "value": false, + "type": "bool" + }, + { + "name": "vmx-rdtscp-exit", + "value": false, + "type": "bool" + }, + { + "name": "amx-complex", + "value": false, + "type": "bool" + }, + { + "name": "nx", + "value": true, + "type": "bool" + }, + { + "name": "vmx-invvpid-all-context", + "value": false, + "type": "bool" + }, + { + "name": "avx-vnni-int8", + "value": false, + "type": "bool" + }, + { + "name": "vmx-vmwrite-vmexit-fields", + "value": false, + "type": "bool" + }, + { + "name": "vmx-page-walk-4", + "value": false, + "type": "bool" + }, + { + "name": "rfds-clear", + "value": false, + "type": "bool" + }, + { + "name": "pause-filter", + "value": false, + "type": "bool" + }, + { + "name": "ds-cpl", + "value": false, + "type": "bool" + }, + { + "name": "succor", + "value": false, + "type": "bool" + }, + { + "name": "fred", + "value": false, + "type": "bool" + }, + { + "name": "fsrm", + "value": false, + "type": "bool" + }, + { + "name": "vmx-exit-load-efer", + "value": false, + "type": "bool" + }, + { + "name": "vmx-mtf", + "value": false, + "type": "bool" + }, + { + "name": "vmx-entry-load-fred", + "value": false, + "type": "bool" + }, + { + "name": "vmx-ept", + "value": false, + "type": "bool" + }, + { + "name": "fb-clear", + "value": false, + "type": "bool" + }, + { + "name": "nodeid-msr", + "value": false, + "type": "bool" + }, + { + "name": "vmx-exit-clear-bndcfgs", + "value": false, + "type": "bool" + }, + { + "name": "smap", + "value": true, + "type": "bool" + }, + { + "name": "vmx-io-bitmap", + "value": false, + "type": "bool" + }, + { + "name": "vmx-preemption-timer", + "value": false, + "type": "bool" + }, + { + "name": "vmx-invept-all-context", + "value": false, + "type": "bool" + }, + { + "name": "vmx-intr-exit", + "value": false, + "type": "bool" + }, + { + "name": "prefetchiti", + "value": false, + "type": "bool" + }, + { + "name": "psdp-no", + "value": false, + "type": "bool" + }, + { + "name": "cr8legacy", + "value": false, + "type": "bool" + }, + { + "name": "xlevel", + "value": 2147483656, + "type": "uint32" + }, + { + "name": "vmx-vpid", + "value": false, + "type": "bool" + }, + { + "name": "vmx-zero-len-inject", + "value": false, + "type": "bool" + }, + { + "name": "pschange-mc-no", + "value": false, + "type": "bool" + }, + { + "name": "virt-ssbd", + "value": false, + "type": "bool" + }, + { + "name": "umip", + "value": false, + "type": "bool" + }, + { + "name": "avx512er", + "value": false, + "type": "bool" + }, + { + "name": "vmx-vintr-pending", + "value": false, + "type": "bool" + }, + { + "name": "xstore-en", + "value": false, + "type": "bool" + }, + { + "name": "avx512vl", + "value": false, + "type": "bool" + }, + { + "name": "ibrs", + "value": false, + "type": "bool" + }, + { + "name": "rsba", + "value": false, + "type": "bool" + }, + { + "name": "cmov", + "value": true, + "type": "bool" + }, + { + "name": "vmx-posted-intr", + "value": false, + "type": "bool" + }, + { + "name": "xcrypt-en", + "value": false, + "type": "bool" + }, + { + "name": "tm2", + "value": false, + "type": "bool" + }, + { + "name": "lbrv", + "value": false, + "type": "bool" + }, + { + "name": "tsc-scale", + "value": false, + "type": "bool" + }, + { + "name": "vmx-secondary-ctls", + "value": false, + "type": "bool" + }, + { + "name": "xsaveerptr", + "value": false, + "type": "bool" + }, + { + "name": "fsgsbase", + "value": true, + "type": "bool" + }, + { + "name": "x-hv-synic-kvm-only", + "value": false, + "type": "bool" + }, + { + "name": "avx512bw", + "value": false, + "type": "bool" + }, + { + "name": "hv-version-id-minor", + "value": 0, + "type": "uint16" + }, + { + "name": "tce", + "value": false, + "type": "bool" + }, + { + "name": "tsc-frequency", + "value": 2496000000, + "type": "int" + }, + { + "name": "smx", + "value": false, + "type": "bool" + }, + { + "name": "hle", + "value": false, + "type": "bool" + }, + { + "name": "monitor", + "value": false, + "type": "bool" + }, + { + "name": "avx512-fp16", + "value": false, + "type": "bool" + }, + { + "name": "sse4a", + "value": false, + "type": "bool" + }, + { + "name": "vpclmulqdq", + "value": false, + "type": "bool" + }, + { + "name": "hv-frequencies", + "value": false, + "type": "bool" + }, + { + "name": "kvm-pv-tlb-flush", + "value": false, + "type": "bool" + }, + { + "name": "vmx-rdtsc-exit", + "value": false, + "type": "bool" + }, + { + "name": "vmx-activity-hlt", + "value": false, + "type": "bool" + }, + { + "name": "vmx-entry-load-bndcfgs", + "value": false, + "type": "bool" + }, + { + "name": "sgx-edeccssa", + "value": false, + "type": "bool" + }, + { + "name": "xsavec", + "value": true, + "type": "bool" + }, + { + "name": "vmx-cr8-load-exit", + "value": false, + "type": "bool" + }, + { + "name": "mds-no", + "value": false, + "type": "bool" + }, + { + "name": "svme-addr-chk", + "value": false, + "type": "bool" + }, + { + "name": "amd-no-ssb", + "value": false, + "type": "bool" + }, + { + "name": "xop", + "value": false, + "type": "bool" + }, + { + "name": "adx", + "value": true, + "type": "bool" + }, + { + "name": "perfmon-v2", + "value": false, + "type": "bool" + }, + { + "name": "hv-version-id-sbranch", + "value": 0, + "type": "uint8" + }, + { + "name": "crash-information", + "type": "GuestPanicInformation" + }, + { + "name": "min-level", + "value": 13, + "type": "uint32" + }, + { + "name": "full-cpuid-auto-level", + "value": true, + "type": "bool" + }, + { + "name": "vmx-exit-ack-intr", + "value": false, + "type": "bool" + }, + { + "name": "vmx-rdseed-exit", + "value": false, + "type": "bool" + }, + { + "name": "pclmulqdq", + "value": true, + "type": "bool" + }, + { + "name": "msr", + "value": true, + "type": "bool" + }, + { + "name": "wrmsrns", + "value": false, + "type": "bool" + }, + { + "name": "kvm-pv-enforce-cpuid", + "value": false, + "type": "bool" + }, + { + "name": "ssb-no", + "value": false, + "type": "bool" + }, + { + "name": "clflush", + "value": true, + "type": "bool" + }, + { + "name": "xlevel2", + "value": 0, + "type": "uint32" + }, + { + "name": "mpx", + "value": false, + "type": "bool" + }, + { + "name": "extapic", + "value": false, + "type": "bool" + }, + { + "name": "lfence-always-serializing", + "value": false, + "type": "bool" + }, + { + "name": "hv-enforce-cpuid", + "value": false, + "type": "bool" + }, + { + "name": "hv-stimer", + "value": false, + "type": "bool" + }, + { + "name": "sgx2", + "value": false, + "type": "bool" + }, + { + "name": "kvm-asyncpf-vmexit", + "value": false, + "type": "bool" + }, + { + "name": "smep", + "value": true, + "type": "bool" + }, + { + "name": "vnmi", + "value": false, + "type": "bool" + }, + { + "name": "vmx-mwait-exit", + "value": false, + "type": "bool" + }, + { + "name": "hv-synic", + "value": false, + "type": "bool" + }, + { + "name": "cx8", + "value": true, + "type": "bool" + }, + { + "name": "vmcb-clean", + "value": false, + "type": "bool" + }, + { + "name": "pku", + "value": false, + "type": "bool" + }, + { + "name": "kvm", + "value": true, + "type": "bool" + }, + { + "name": "srso-no", + "value": false, + "type": "bool" + }, + { + "name": "hv-passthrough", + "value": false, + "type": "bool" + }, + { + "name": "lkgs", + "value": false, + "type": "bool" + }, + { + "name": "tsx-ldtrk", + "value": false, + "type": "bool" + }, + { + "name": "hv-tlbflush-ext", + "value": false, + "type": "bool" + }, + { + "name": "stibp", + "value": false, + "type": "bool" + }, + { + "name": "vmx-cr3-store-noexit", + "value": false, + "type": "bool" + }, + { + "name": "tsx-ctrl", + "value": false, + "type": "bool" + }, + { + "name": "clzero", + "value": false, + "type": "bool" + }, + { + "name": "svm-lock", + "value": false, + "type": "bool" + }, + { + "name": "hv-reenlightenment", + "value": false, + "type": "bool" + }, + { + "name": "x-consistent-cache", + "value": false, + "type": "bool" + }, + { + "name": "avic", + "value": false, + "type": "bool" + }, + { + "name": "hv-vpindex", + "value": false, + "type": "bool" + }, + { + "name": "osvw", + "value": false, + "type": "bool" + }, + { + "name": "sgx-exinfo", + "value": false, + "type": "bool" + }, + { + "name": "legacy-cache", + "value": true, + "type": "bool" + }, + { + "name": "sse", + "value": true, + "type": "bool" + }, + { + "name": "fsrc", + "value": false, + "type": "bool" + }, + { + "name": "ds", + "value": false, + "type": "bool" + }, + { + "name": "pks", + "value": false, + "type": "bool" + }, + { + "name": "vmx-ept-2mb", + "value": false, + "type": "bool" + }, + { + "name": "vmx-true-ctls", + "value": false, + "type": "bool" + }, + { + "name": "movdir64b", + "value": false, + "type": "bool" + }, + { + "name": "vmx-ept-1gb", + "value": false, + "type": "bool" + }, + { + "name": "vmx-invept", + "value": false, + "type": "bool" + }, + { + "name": "ipred-ctrl", + "value": false, + "type": "bool" + }, + { + "name": "vmx-rdrand-exit", + "value": false, + "type": "bool" + }, + { + "name": "acpi", + "value": false, + "type": "bool" + }, + { + "name": "vmx-encls-exit", + "value": false, + "type": "bool" + }, + { + "name": "vmx-cr8-store-exit", + "value": false, + "type": "bool" + }, + { + "name": "sbdr-ssdp-no", + "value": false, + "type": "bool" + }, + { + "name": "its-no", + "value": false, + "type": "bool" + }, + { + "name": "kvm-mmu", + "value": false, + "type": "bool" + }, + { + "name": "3dnowprefetch", + "value": true, + "type": "bool" + }, + { + "name": "nrip-save", + "value": false, + "type": "bool" + }, + { + "name": "gfni", + "value": false, + "type": "bool" + }, + { + "name": "flush-l1d", + "value": false, + "type": "bool" + }, + { + "name": "kvm-msi-ext-dest-id", + "value": false, + "type": "bool" + }, + { + "name": "fzrm", + "value": false, + "type": "bool" + }, + { + "name": "serialize", + "value": false, + "type": "bool" + }, + { + "name": "avx512bitalg", + "value": false, + "type": "bool" + }, + { + "name": "rdseed", + "value": true, + "type": "bool" + }, + { + "name": "sha-ni", + "value": false, + "type": "bool" + }, + { + "name": "ace2", + "value": false, + "type": "bool" + }, + { + "name": "lmce", + "value": false, + "type": "bool" + }, + { + "name": "avx10-version", + "value": 0, + "type": "uint8" + }, + { + "name": "topoext", + "value": false, + "type": "bool" + }, + { + "name": "f16c", + "value": true, + "type": "bool" + }, + { + "name": "waitpkg", + "value": false, + "type": "bool" + }, + { + "name": "avx512-4fmaps", + "value": false, + "type": "bool" + }, + { + "name": "fbsdp-no", + "value": false, + "type": "bool" + }, + { + "name": "avx", + "value": true, + "type": "bool" + }, + { + "name": "sse2", + "value": true, + "type": "bool" + }, + { + "name": "rdctl-no", + "value": false, + "type": "bool" + }, + { + "name": "mmx", + "value": true, + "type": "bool" + }, + { + "name": "hv-version-id-major", + "value": 10, + "type": "uint16" + }, + { + "name": "level", + "value": 13, + "type": "uint32" + }, + { + "name": "avx512vnni", + "value": false, + "type": "bool" + }, + { + "name": "pni", + "value": true, + "type": "bool" + }, + { + "name": "movbe", + "value": true, + "type": "bool" + }, + { + "name": "vmx-ple", + "value": false, + "type": "bool" + }, + { + "name": "mmxext", + "value": false, + "type": "bool" + }, + { + "name": "lbr-fmt", + "value": 18446744073709551552, + "type": "uint64" + }, + { + "name": "bus-lock-detect", + "value": false, + "type": "bool" + }, + { + "name": "vmx-apicv-vid", + "value": false, + "type": "bool" + }, + { + "name": "vmx-page-walk-5", + "value": false, + "type": "bool" + }, + { + "name": "flushbyasid", + "value": false, + "type": "bool" + }, + { + "name": "rdtscp", + "value": true, + "type": "bool" + }, + { + "name": "clwb", + "value": false, + "type": "bool" + }, + { + "name": "kvm-pv-sched-yield", + "value": false, + "type": "bool" + }, + { + "name": "kvm-asyncpf", + "value": true, + "type": "bool" + }, + { + "name": "avx-vnni-int16", + "value": false, + "type": "bool" + }, + { + "name": "decodeassists", + "value": false, + "type": "bool" + }, + { + "name": "vmx-wbinvd-exit", + "value": false, + "type": "bool" + }, + { + "name": "pat", + "value": true, + "type": "bool" + }, + { + "name": "vmx-exit-clear-rtit-ctl", + "value": false, + "type": "bool" + }, + { + "name": "invpcid", + "value": true, + "type": "bool" + }, + { + "name": "pdpe1gb", + "value": false, + "type": "bool" + }, + { + "name": "vmx-exit-save-pat", + "value": false, + "type": "bool" + }, + { + "name": "unavailable-features", + "value": [], + "type": "strList" + }, + { + "name": "tsc-adjust", + "value": false, + "type": "bool" + }, + { + "name": "vmx-enable-user-wait-pause", + "value": false, + "type": "bool" + }, + { + "name": "ht", + "value": false, + "type": "bool" + }, + { + "name": "amx-tile", + "value": false, + "type": "bool" + }, + { + "name": "clflushopt", + "value": false, + "type": "bool" + }, + { + "name": "hv-xmm-input", + "value": false, + "type": "bool" + }, + { + "name": "vmx-tsc-offset", + "value": false, + "type": "bool" + }, + { + "name": "ssbd", + "value": false, + "type": "bool" + }, + { + "name": "3dnowext", + "value": false, + "type": "bool" + }, + { + "name": "xtpr", + "value": false, + "type": "bool" + }, + { + "name": "sgx", + "value": false, + "type": "bool" + }, + { + "name": "hv-crash", + "value": false, + "type": "bool" + }, + { + "name": "xsave", + "value": true, + "type": "bool" + }, + { + "name": "pdcm", + "value": false, + "type": "bool" + }, + { + "name": "hv-vendor-id", + "value": "Microsoft Hv", + "type": "str" + }, + { + "name": "est", + "value": false, + "type": "bool" + }, + { + "name": "vendor", + "value": "GenuineIntel", + "type": "string" + }, + { + "name": "pge", + "value": true, + "type": "bool" + }, + { + "name": "pcommit", + "value": false, + "type": "bool" + }, + { + "name": "ibs", + "value": false, + "type": "bool" + }, + { + "name": "tsc-deadline", + "value": true, + "type": "bool" + }, + { + "name": "sgx-mode64", + "value": false, + "type": "bool" + }, + { + "name": "kvmclock-stable-bit", + "value": true, + "type": "bool" + }, + { + "name": "misalignsse", + "value": false, + "type": "bool" + }, + { + "name": "vmx-msr-bitmap", + "value": false, + "type": "bool" + }, + { + "name": "check", + "value": true, + "type": "bool" + }, + { + "name": "hv-time", + "value": false, + "type": "bool" + }, + { + "name": "perfctr-nb", + "value": false, + "type": "bool" + }, + { + "name": "hv-avic", + "value": false, + "type": "bool" + }, + { + "name": "vmx-vmfunc", + "value": false, + "type": "bool" + }, + { + "name": "phys-bits", + "value": 40, + "type": "uint32" + }, + { + "name": "apic", + "value": true, + "type": "bool" + }, + { + "name": "vmx-exit-save-preemption-timer", + "value": false, + "type": "bool" + }, + { + "name": "prefetchi", + "value": false, + "type": "bool" + }, + { + "name": "vmx-nmi-exit", + "value": false, + "type": "bool" + }, + { + "name": "avx512vbmi", + "value": false, + "type": "bool" + }, + { + "name": "thread-id", + "value": 0, + "type": "int32" + }, + { + "name": "min-xlevel", + "value": 2147483656, + "type": "uint32" + }, + { + "name": "socket-id", + "value": 0, + "type": "int32" + }, + { + "name": "vmx-exit-nosave-debugctl", + "value": false, + "type": "bool" + }, + { + "name": "bmi2", + "value": true, + "type": "bool" + }, + { + "name": "vmx-xsaves", + "value": false, + "type": "bool" + }, + { + "name": "avx512f", + "value": false, + "type": "bool" + }, + { + "name": "arch-capabilities", + "value": false, + "type": "bool" + }, + { + "name": "vmx-exit-load-perf-global-ctrl", + "value": false, + "type": "bool" + }, + { + "name": "vmx-pml", + "value": false, + "type": "bool" + }, + { + "name": "vmx-entry-load-perf-global-ctrl", + "value": false, + "type": "bool" + }, + { + "name": "ace2-en", + "value": false, + "type": "bool" + }, + { + "name": "wdt", + "value": false, + "type": "bool" + }, + { + "name": "intel-pt", + "value": false, + "type": "bool" + }, + { + "name": "kvm-nopiodelay", + "value": true, + "type": "bool" + }, + { + "name": "cmpccxadd", + "value": false, + "type": "bool" + }, + { + "name": "v-vmsave-vmload", + "value": false, + "type": "bool" + }, + { + "name": "avx512pf", + "value": false, + "type": "bool" + }, + { + "name": "bmi1", + "value": true, + "type": "bool" + }, + { + "name": "enforce", + "value": false, + "type": "bool" + }, + { + "name": "sse4.2", + "value": true, + "type": "bool" + }, + { + "name": "hv-syndbg", + "value": false, + "type": "bool" + }, + { + "name": "ibrs-all", + "value": false, + "type": "bool" + }, + { + "name": "xgetbv1", + "value": true, + "type": "bool" + }, + { + "name": "mcdt-no", + "value": false, + "type": "bool" + }, + { + "name": "spec-ctrl", + "value": true, + "type": "bool" + }, + { + "name": "3dnow", + "value": false, + "type": "bool" + }, + { + "name": "kvm-asyncpf-int", + "value": false, + "type": "bool" + }, + { + "name": "vmx", + "value": false, + "type": "bool" + }, + { + "name": "la57", + "value": false, + "type": "bool" + }, + { + "name": "hv-no-nonarch-coresharing", + "value": "off", + "type": "OnOffAuto" + }, + { + "name": "amx-bf16", + "value": false, + "type": "bool" + }, + { + "name": "sse4.1", + "value": true, + "type": "bool" + }, + { + "name": "xsaveopt", + "value": true, + "type": "bool" + }, + { + "name": "hv-relaxed", + "value": false, + "type": "bool" + }, + { + "name": "hv-version-id-snumber", + "value": 0, + "type": "uint32" + }, + { + "name": "stibp-always-on", + "value": false, + "type": "bool" + }, + { + "name": "sbpb", + "value": false, + "type": "bool" + }, + { + "name": "avx-vnni", + "value": false, + "type": "bool" + }, + { + "name": "fxsr", + "value": true, + "type": "bool" + }, + { + "name": "phe-en", + "value": false, + "type": "bool" + }, + { + "name": "hv-vapic", + "value": false, + "type": "bool" + }, + { + "name": "hv-ipi", + "value": false, + "type": "bool" + }, + { + "name": "null-sel-clr-base", + "value": false, + "type": "bool" + }, + { + "name": "hypervisor", + "value": true, + "type": "bool" + }, + { + "name": "avx10-256", + "value": false, + "type": "bool" + }, + { + "name": "aes", + "value": true, + "type": "bool" + }, + { + "name": "amd-ssbd", + "value": false, + "type": "bool" + }, + { + "name": "core-id", + "value": 0, + "type": "int32" + }, + { + "name": "de", + "value": true, + "type": "bool" + }, + { + "name": "ss", + "value": false, + "type": "bool" + }, + { + "name": "vmx-movdr-exit", + "value": false, + "type": "bool" + }, + { + "name": "fma", + "value": true, + "type": "bool" + }, + { + "name": "lahf_lm", + "value": true, + "type": "bool" + }, + { + "name": "lapic", + "value": "/machine/unattached/device[0]/lapic", + "type": "child<kvm-apic>" + }, + { + "name": "tsc_adjust", + "value": false, + "type": "bool" + }, + { + "name": "svm_lock", + "value": false, + "type": "bool" + }, + { + "name": "vmcb_clean", + "value": false, + "type": "bool" + }, + { + "name": "nrip_save", + "value": false, + "type": "bool" + }, + { + "name": "lbr_fmt", + "value": 18446744073709551552, + "type": "uint64" + }, + { + "name": "pclmuldq", + "value": true, + "type": "bool" + }, + { + "name": "ffxsr", + "value": false, + "type": "bool" + }, + { + "name": "sse4-2", + "value": true, + "type": "bool" + }, + { + "name": "kvm_asyncpf_int", + "value": false, + "type": "bool" + }, + { + "name": "cmp_legacy", + "value": false, + "type": "bool" + }, + { + "name": "kvm_nopiodelay", + "value": true, + "type": "bool" + }, + { + "name": "perfctr_core", + "value": false, + "type": "bool" + }, + { + "name": "kvm_pv_unhalt", + "value": false, + "type": "bool" + }, + { + "name": "ds_cpl", + "value": false, + "type": "bool" + }, + { + "name": "sse4-1", + "value": true, + "type": "bool" + }, + { + "name": "perfctr_nb", + "value": false, + "type": "bool" + }, + { + "name": "sse3", + "value": true, + "type": "bool" + }, + { + "name": "tsc_scale", + "value": false, + "type": "bool" + }, + { + "name": "pause_filter", + "value": false, + "type": "bool" + }, + { + "name": "kvm_asyncpf", + "value": true, + "type": "bool" + }, + { + "name": "kvm_steal_time", + "value": true, + "type": "bool" + }, + { + "name": "feature-words", + "value": [ + { + "cpuid-register": "EBX", + "cpuid-input-ecx": 0, + "cpuid-input-eax": 36, + "features": 0 + }, + { + "cpuid-register": "EDX", + "cpuid-input-ecx": 2, + "cpuid-input-eax": 7, + "features": 0 + }, + { + "cpuid-register": "EDX", + "cpuid-input-ecx": 1, + "cpuid-input-eax": 7, + "features": 0 + }, + { + "cpuid-register": "ECX", + "cpuid-input-ecx": 1, + "cpuid-input-eax": 7, + "features": 0 + }, + { + "cpuid-register": "EDX", + "cpuid-input-ecx": 1, + "cpuid-input-eax": 13, + "features": 0 + }, + { + "cpuid-register": "ECX", + "cpuid-input-ecx": 1, + "cpuid-input-eax": 13, + "features": 0 + }, + { + "cpuid-register": "EAX", + "cpuid-input-ecx": 1, + "cpuid-input-eax": 18, + "features": 0 + }, + { + "cpuid-register": "EBX", + "cpuid-input-ecx": 0, + "cpuid-input-eax": 18, + "features": 0 + }, + { + "cpuid-register": "EAX", + "cpuid-input-ecx": 0, + "cpuid-input-eax": 18, + "features": 0 + }, + { + "cpuid-register": "ECX", + "cpuid-input-ecx": 0, + "cpuid-input-eax": 20, + "features": 0 + }, + { + "cpuid-register": "EDX", + "cpuid-input-ecx": 0, + "cpuid-input-eax": 13, + "features": 0 + }, + { + "cpuid-register": "EAX", + "cpuid-input-ecx": 0, + "cpuid-input-eax": 13, + "features": 7 + }, + { + "cpuid-register": "EAX", + "cpuid-input-eax": 6, + "features": 4 + }, + { + "cpuid-register": "EAX", + "cpuid-input-ecx": 1, + "cpuid-input-eax": 13, + "features": 15 + }, + { + "cpuid-register": "EDX", + "cpuid-input-eax": 2147483658, + "features": 0 + }, + { + "cpuid-register": "EDX", + "cpuid-input-eax": 1073741825, + "features": 0 + }, + { + "cpuid-register": "EAX", + "cpuid-input-eax": 1073741825, + "features": 16777339 + }, + { + "cpuid-register": "EDX", + "cpuid-input-eax": 3221225473, + "features": 0 + }, + { + "cpuid-register": "EAX", + "cpuid-input-eax": 2147483682, + "features": 0 + }, + { + "cpuid-register": "EBX", + "cpuid-input-eax": 2147483681, + "features": 0 + }, + { + "cpuid-register": "EAX", + "cpuid-input-eax": 2147483681, + "features": 0 + }, + { + "cpuid-register": "EBX", + "cpuid-input-eax": 2147483656, + "features": 0 + }, + { + "cpuid-register": "EDX", + "cpuid-input-eax": 2147483655, + "features": 0 + }, + { + "cpuid-register": "EBX", + "cpuid-input-eax": 2147483655, + "features": 0 + }, + { + "cpuid-register": "ECX", + "cpuid-input-eax": 2147483649, + "features": 289 + }, + { + "cpuid-register": "EDX", + "cpuid-input-eax": 2147483649, + "features": 672139264 + }, + { + "cpuid-register": "EAX", + "cpuid-input-ecx": 1, + "cpuid-input-eax": 7, + "features": 0 + }, + { + "cpuid-register": "EDX", + "cpuid-input-ecx": 0, + "cpuid-input-eax": 7, + "features": 67108864 + }, + { + "cpuid-register": "ECX", + "cpuid-input-ecx": 0, + "cpuid-input-eax": 7, + "features": 0 + }, + { + "cpuid-register": "EBX", + "cpuid-input-ecx": 0, + "cpuid-input-eax": 7, + "features": 1836969 + }, + { + "cpuid-register": "ECX", + "cpuid-input-eax": 1, + "features": 4160369155 + }, + { + "cpuid-register": "EDX", + "cpuid-input-eax": 1, + "features": 126614527 + } + ], + "type": "X86CPUFeatureWordInfo" + }, + { + "name": "kvm_mmu", + "value": false, + "type": "bool" + }, + { + "name": "filtered-features", + "value": [ + { + "cpuid-register": "EBX", + "cpuid-input-ecx": 0, + "cpuid-input-eax": 36, + "features": 0 + }, + { + "cpuid-register": "EDX", + "cpuid-input-ecx": 2, + "cpuid-input-eax": 7, + "features": 0 + }, + { + "cpuid-register": "EDX", + "cpuid-input-ecx": 1, + "cpuid-input-eax": 7, + "features": 0 + }, + { + "cpuid-register": "ECX", + "cpuid-input-ecx": 1, + "cpuid-input-eax": 7, + "features": 0 + }, + { + "cpuid-register": "EDX", + "cpuid-input-ecx": 1, + "cpuid-input-eax": 13, + "features": 0 + }, + { + "cpuid-register": "ECX", + "cpuid-input-ecx": 1, + "cpuid-input-eax": 13, + "features": 0 + }, + { + "cpuid-register": "EAX", + "cpuid-input-ecx": 1, + "cpuid-input-eax": 18, + "features": 0 + }, + { + "cpuid-register": "EBX", + "cpuid-input-ecx": 0, + "cpuid-input-eax": 18, + "features": 0 + }, + { + "cpuid-register": "EAX", + "cpuid-input-ecx": 0, + "cpuid-input-eax": 18, + "features": 0 + }, + { + "cpuid-register": "ECX", + "cpuid-input-ecx": 0, + "cpuid-input-eax": 20, + "features": 0 + }, + { + "cpuid-register": "EDX", + "cpuid-input-ecx": 0, + "cpuid-input-eax": 13, + "features": 0 + }, + { + "cpuid-register": "EAX", + "cpuid-input-ecx": 0, + "cpuid-input-eax": 13, + "features": 0 + }, + { + "cpuid-register": "EAX", + "cpuid-input-eax": 6, + "features": 0 + }, + { + "cpuid-register": "EAX", + "cpuid-input-ecx": 1, + "cpuid-input-eax": 13, + "features": 0 + }, + { + "cpuid-register": "EDX", + "cpuid-input-eax": 2147483658, + "features": 0 + }, + { + "cpuid-register": "EDX", + "cpuid-input-eax": 1073741825, + "features": 0 + }, + { + "cpuid-register": "EAX", + "cpuid-input-eax": 1073741825, + "features": 0 + }, + { + "cpuid-register": "EDX", + "cpuid-input-eax": 3221225473, + "features": 0 + }, + { + "cpuid-register": "EAX", + "cpuid-input-eax": 2147483682, + "features": 0 + }, + { + "cpuid-register": "EBX", + "cpuid-input-eax": 2147483681, + "features": 0 + }, + { + "cpuid-register": "EAX", + "cpuid-input-eax": 2147483681, + "features": 0 + }, + { + "cpuid-register": "EBX", + "cpuid-input-eax": 2147483656, + "features": 0 + }, + { + "cpuid-register": "EDX", + "cpuid-input-eax": 2147483655, + "features": 0 + }, + { + "cpuid-register": "EBX", + "cpuid-input-eax": 2147483655, + "features": 0 + }, + { + "cpuid-register": "ECX", + "cpuid-input-eax": 2147483649, + "features": 0 + }, + { + "cpuid-register": "EDX", + "cpuid-input-eax": 2147483649, + "features": 0 + }, + { + "cpuid-register": "EAX", + "cpuid-input-ecx": 1, + "cpuid-input-eax": 7, + "features": 0 + }, + { + "cpuid-register": "EDX", + "cpuid-input-ecx": 0, + "cpuid-input-eax": 7, + "features": 0 + }, + { + "cpuid-register": "ECX", + "cpuid-input-ecx": 0, + "cpuid-input-eax": 7, + "features": 0 + }, + { + "cpuid-register": "EBX", + "cpuid-input-ecx": 0, + "cpuid-input-eax": 7, + "features": 0 + }, + { + "cpuid-register": "ECX", + "cpuid-input-eax": 1, + "features": 0 + }, + { + "cpuid-register": "EDX", + "cpuid-input-eax": 1, + "features": 0 + } + ], + "type": "X86CPUFeatureWordInfo" + }, + { + "name": "sse4_2", + "value": true, + "type": "bool" + }, + { + "name": "kvm_poll_control", + "value": false, + "type": "bool" + }, + { + "name": "fxsr_opt", + "value": false, + "type": "bool" + }, + { + "name": "nodeid_msr", + "value": false, + "type": "bool" + }, + { + "name": "kvm_pv_eoi", + "value": true, + "type": "bool" + }, + { + "name": "i64", + "value": true, + "type": "bool" + }, + { + "name": "hv-apicv", + "value": false, + "type": "bool" + }, + { + "name": "xd", + "value": true, + "type": "bool" + }, + { + "name": "sse4_1", + "value": true, + "type": "bool" + } + ] + } + ], + "id": "libvirt-1" +} + +{ + "execute": "qom-get", + "arguments": { + "path": "/machine/unattached/device[0]", + "property": "unavailable-features" + }, + "id": "libvirt-2" +} + +{ + "return": [], + "id": "libvirt-2" +} diff --git a/tests/qemumonitorjsontest.c b/tests/qemumonitorjsontest.c index 9c857a209e..145fd56cfa 100644 --- a/tests/qemumonitorjsontest.c +++ b/tests/qemumonitorjsontest.c @@ -2991,7 +2991,9 @@ mymain(void) DO_TEST_CPU_INFO("s390", 2); DO_TEST_GET_GUEST_CPU("SierraForest", false); + DO_TEST_GET_GUEST_CPU("SierraForest", true); DO_TEST_GET_GUEST_CPU("SkylakeClient", false); + DO_TEST_GET_GUEST_CPU("SkylakeClient", true); #define DO_TEST_QAPI_QUERY(nme, qry, scc, rplobj) \ -- 2.51.0

On Thu, Sep 04, 2025 at 16:46:56 +0200, Jiri Denemark via Devel wrote:
From: Jiri Denemark <jdenemar@redhat.com>
The test cases show both the legacy method and the new one produce identical results.
Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- .../get-guest-cpu-SierraForest.json | 2985 +++++++++++++++++ .../get-guest-cpu-SkylakeClient.json | 2967 ++++++++++++++++ tests/qemumonitorjsontest.c | 2 + 3 files changed, 5954 insertions(+) create mode 100644 tests/qemumonitorjsondata/get-guest-cpu-SierraForest.json create mode 100644 tests/qemumonitorjsondata/get-guest-cpu-SkylakeClient.json
This data belongs more into the previous patch than the capability addition. Anyways since it's a masive diff keep it separate. Reviewed-by: Peter Krempa <pkrempa@redhat.com>

From: Jiri Denemark <jdenemar@redhat.com> The function translates a list of CPU feature names retrieved from QEMU and adds them to virCPUData. Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- src/qemu/qemu_monitor_json.c | 43 ++++++++++++++++++++---------------- 1 file changed, 24 insertions(+), 19 deletions(-) diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c index 8c70279f6d..a831e9e26c 100644 --- a/src/qemu/qemu_monitor_json.c +++ b/src/qemu/qemu_monitor_json.c @@ -6704,18 +6704,12 @@ qemuMonitorJSONGetCPUProperties(qemuMonitor *mon, static int -qemuMonitorJSONGetCPUData(qemuMonitor *mon, - bool qomListGet, - const char *cpuQOMPath, - qemuMonitorCPUFeatureTranslationCallback translate, - virCPUData *data) +qemuMonitorJSONCPUDataAddFeatures(virCPUData *data, + GStrv props, + qemuMonitorCPUFeatureTranslationCallback translate) { - g_auto(GStrv) props = NULL; char **p; - if (qemuMonitorJSONGetCPUProperties(mon, qomListGet, cpuQOMPath, &props) < 0) - return -1; - for (p = props; p && *p; p++) { const char *name = *p; @@ -6730,6 +6724,25 @@ qemuMonitorJSONGetCPUData(qemuMonitor *mon, } +static int +qemuMonitorJSONGetCPUData(qemuMonitor *mon, + bool qomListGet, + const char *cpuQOMPath, + qemuMonitorCPUFeatureTranslationCallback translate, + virCPUData *data) +{ + g_auto(GStrv) props = NULL; + + if (qemuMonitorJSONGetCPUProperties(mon, qomListGet, cpuQOMPath, &props) < 0) + return -1; + + if (qemuMonitorJSONCPUDataAddFeatures(data, props, translate) < 0) + return -1; + + return 0; +} + + static int qemuMonitorJSONGetCPUDataDisabled(qemuMonitor *mon, const char *cpuQOMPath, @@ -6737,21 +6750,13 @@ qemuMonitorJSONGetCPUDataDisabled(qemuMonitor *mon, virCPUData *data) { g_auto(GStrv) props = NULL; - char **p; if (qemuMonitorJSONGetStringListProperty(mon, cpuQOMPath, "unavailable-features", &props) < 0) return -1; - for (p = props; p && *p; p++) { - const char *name = *p; - - if (translate) - name = translate(data->arch, name); - - if (virCPUDataAddFeature(data, name) < 0) - return -1; - } + if (qemuMonitorJSONCPUDataAddFeatures(data, props, translate) < 0) + return -1; return 0; } -- 2.51.0

On Thu, Sep 04, 2025 at 16:46:57 +0200, Jiri Denemark via Devel wrote:
From: Jiri Denemark <jdenemar@redhat.com>
The function translates a list of CPU feature names retrieved from QEMU and adds them to virCPUData.
Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- src/qemu/qemu_monitor_json.c | 43 ++++++++++++++++++++---------------- 1 file changed, 24 insertions(+), 19 deletions(-)
Reviewed-by: Peter Krempa <pkrempa@redhat.com>

From: Jiri Denemark <jdenemar@redhat.com> The qemuMonitorJSONGetCPUData function is just a wrapper around two function calls and it is only used by qemuMonitorJSONGetGuestCPU. Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- src/qemu/qemu_monitor_json.c | 27 ++++++--------------------- 1 file changed, 6 insertions(+), 21 deletions(-) diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c index a831e9e26c..6fa2f447db 100644 --- a/src/qemu/qemu_monitor_json.c +++ b/src/qemu/qemu_monitor_json.c @@ -6724,25 +6724,6 @@ qemuMonitorJSONCPUDataAddFeatures(virCPUData *data, } -static int -qemuMonitorJSONGetCPUData(qemuMonitor *mon, - bool qomListGet, - const char *cpuQOMPath, - qemuMonitorCPUFeatureTranslationCallback translate, - virCPUData *data) -{ - g_auto(GStrv) props = NULL; - - if (qemuMonitorJSONGetCPUProperties(mon, qomListGet, cpuQOMPath, &props) < 0) - return -1; - - if (qemuMonitorJSONCPUDataAddFeatures(data, props, translate) < 0) - return -1; - - return 0; -} - - static int qemuMonitorJSONGetCPUDataDisabled(qemuMonitor *mon, const char *cpuQOMPath, @@ -6790,13 +6771,17 @@ qemuMonitorJSONGetGuestCPU(qemuMonitor *mon, { g_autoptr(virCPUData) cpuEnabled = NULL; g_autoptr(virCPUData) cpuDisabled = NULL; + g_auto(GStrv) propsEnabled = NULL; if (!(cpuEnabled = virCPUDataNew(arch)) || !(cpuDisabled = virCPUDataNew(arch))) return -1; - if (qemuMonitorJSONGetCPUData(mon, qomListGet, cpuQOMPath, - translate, cpuEnabled) < 0) + if (qemuMonitorJSONGetCPUProperties(mon, qomListGet, cpuQOMPath, + &propsEnabled) < 0) + return -1; + + if (qemuMonitorJSONCPUDataAddFeatures(cpuEnabled, propsEnabled, translate) < 0) return -1; if (disabled && -- 2.51.0

On Thu, Sep 04, 2025 at 16:46:58 +0200, Jiri Denemark via Devel wrote:
From: Jiri Denemark <jdenemar@redhat.com>
The qemuMonitorJSONGetCPUData function is just a wrapper around two function calls and it is only used by qemuMonitorJSONGetGuestCPU.
Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- src/qemu/qemu_monitor_json.c | 27 ++++++--------------------- 1 file changed, 6 insertions(+), 21 deletions(-)
Reviewed-by: Peter Krempa <pkrempa@redhat.com>

From: Jiri Denemark <jdenemar@redhat.com> The function is always called with both enabled and disabled pointers set. Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- src/qemu/qemu_monitor_json.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c index 6fa2f447db..06e0f3794e 100644 --- a/src/qemu/qemu_monitor_json.c +++ b/src/qemu/qemu_monitor_json.c @@ -6784,13 +6784,11 @@ qemuMonitorJSONGetGuestCPU(qemuMonitor *mon, if (qemuMonitorJSONCPUDataAddFeatures(cpuEnabled, propsEnabled, translate) < 0) return -1; - if (disabled && - qemuMonitorJSONGetCPUDataDisabled(mon, cpuQOMPath, translate, cpuDisabled) < 0) + if (qemuMonitorJSONGetCPUDataDisabled(mon, cpuQOMPath, translate, cpuDisabled) < 0) return -1; *enabled = g_steal_pointer(&cpuEnabled); - if (disabled) - *disabled = g_steal_pointer(&cpuDisabled); + *disabled = g_steal_pointer(&cpuDisabled); return 0; } -- 2.51.0

On Thu, Sep 04, 2025 at 16:46:59 +0200, Jiri Denemark via Devel wrote:
From: Jiri Denemark <jdenemar@redhat.com>
The function is always called with both enabled and disabled pointers set.
Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- src/qemu/qemu_monitor_json.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c index 6fa2f447db..06e0f3794e 100644 --- a/src/qemu/qemu_monitor_json.c +++ b/src/qemu/qemu_monitor_json.c @@ -6784,13 +6784,11 @@ qemuMonitorJSONGetGuestCPU(qemuMonitor *mon, if (qemuMonitorJSONCPUDataAddFeatures(cpuEnabled, propsEnabled, translate) < 0) return -1;
- if (disabled && - qemuMonitorJSONGetCPUDataDisabled(mon, cpuQOMPath, translate, cpuDisabled) < 0) + if (qemuMonitorJSONGetCPUDataDisabled(mon, cpuQOMPath, translate, cpuDisabled) < 0) return -1;
*enabled = g_steal_pointer(&cpuEnabled); - if (disabled) - *disabled = g_steal_pointer(&cpuDisabled); + *disabled = g_steal_pointer(&cpuDisabled);
The common monitor code wrapper: int qemuMonitorGetGuestCPU(qemuMonitor *mon, virArch arch, bool qomListGet, const char *cpuQOMPath, qemuMonitorCPUFeatureTranslationCallback translate, virCPUData **enabled, virCPUData **disabled) { VIR_DEBUG("arch=%s qomListGet%d cpuQOMPath=%s translate=%p " "enabled=%p disabled=%p", virArchToString(arch), qomListGet, cpuQOMPath, translate, enabled, disabled); QEMU_CHECK_MONITOR(mon); *enabled = NULL; if (disabled) *disabled = NULL; return qemuMonitorJSONGetGuestCPU(mon, arch, qomListGet, cpuQOMPath, translate, enabled, disabled); } Also checks 'disabled'. Fix that one too. Reviewed-by: Peter Krempa <pkrempa@redhat.com>

From: Jiri Denemark <jdenemar@redhat.com> The qemuMonitorJSONGetCPUDataDisabled function is just a wrapper around two function calls and it is only used by qemuMonitorJSONGetGuestCPU. Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- src/qemu/qemu_monitor_json.c | 26 ++++++-------------------- 1 file changed, 6 insertions(+), 20 deletions(-) diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c index 06e0f3794e..6b736aefd0 100644 --- a/src/qemu/qemu_monitor_json.c +++ b/src/qemu/qemu_monitor_json.c @@ -6724,25 +6724,6 @@ qemuMonitorJSONCPUDataAddFeatures(virCPUData *data, } -static int -qemuMonitorJSONGetCPUDataDisabled(qemuMonitor *mon, - const char *cpuQOMPath, - qemuMonitorCPUFeatureTranslationCallback translate, - virCPUData *data) -{ - g_auto(GStrv) props = NULL; - - if (qemuMonitorJSONGetStringListProperty(mon, cpuQOMPath, - "unavailable-features", &props) < 0) - return -1; - - if (qemuMonitorJSONCPUDataAddFeatures(data, props, translate) < 0) - return -1; - - return 0; -} - - /** * qemuMonitorJSONGetGuestCPU: * @mon: Pointer to the monitor @@ -6772,6 +6753,7 @@ qemuMonitorJSONGetGuestCPU(qemuMonitor *mon, g_autoptr(virCPUData) cpuEnabled = NULL; g_autoptr(virCPUData) cpuDisabled = NULL; g_auto(GStrv) propsEnabled = NULL; + g_auto(GStrv) propsDisabled = NULL; if (!(cpuEnabled = virCPUDataNew(arch)) || !(cpuDisabled = virCPUDataNew(arch))) @@ -6784,7 +6766,11 @@ qemuMonitorJSONGetGuestCPU(qemuMonitor *mon, if (qemuMonitorJSONCPUDataAddFeatures(cpuEnabled, propsEnabled, translate) < 0) return -1; - if (qemuMonitorJSONGetCPUDataDisabled(mon, cpuQOMPath, translate, cpuDisabled) < 0) + if (qemuMonitorJSONGetStringListProperty(mon, cpuQOMPath, + "unavailable-features", &propsDisabled) < 0) + return -1; + + if (qemuMonitorJSONCPUDataAddFeatures(cpuDisabled, propsDisabled, translate) < 0) return -1; *enabled = g_steal_pointer(&cpuEnabled); -- 2.51.0

On Thu, Sep 04, 2025 at 16:47:00 +0200, Jiri Denemark via Devel wrote:
From: Jiri Denemark <jdenemar@redhat.com>
The qemuMonitorJSONGetCPUDataDisabled function is just a wrapper around two function calls and it is only used by qemuMonitorJSONGetGuestCPU.
Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- src/qemu/qemu_monitor_json.c | 26 ++++++-------------------- 1 file changed, 6 insertions(+), 20 deletions(-)
Reviewed-by: Peter Krempa <pkrempa@redhat.com>

From: Jiri Denemark <jdenemar@redhat.com> Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- src/qemu/qemu_monitor_json.c | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c index 6b736aefd0..f8be1a79b1 100644 --- a/src/qemu/qemu_monitor_json.c +++ b/src/qemu/qemu_monitor_json.c @@ -6641,7 +6641,8 @@ static int qemuMonitorJSONGetCPUProperties(qemuMonitor *mon, bool qomListGet, const char *cpuQOMPath, - char ***props) + char ***propsEnabled, + char ***propsDisabled) { g_autoptr(virJSONValue) cmd = NULL; g_autoptr(virJSONValue) reply = NULL; @@ -6652,7 +6653,8 @@ qemuMonitorJSONGetCPUProperties(qemuMonitor *mon, .cpuQOMPath = cpuQOMPath, }; - *props = NULL; + *propsEnabled = NULL; + *propsDisabled = NULL; if (qomListGet) { g_autoptr(virJSONValue) paths = virJSONValueNewArray(); @@ -6698,8 +6700,16 @@ qemuMonitorJSONGetCPUProperties(qemuMonitor *mon, } } - return qemuMonitorJSONParsePropsList(array, qemuMonitorJSONCPUPropsFilter, - &filterData, props); + if (qemuMonitorJSONParsePropsList(array, qemuMonitorJSONCPUPropsFilter, + &filterData, propsEnabled) < 0) + return -1; + + if (qemuMonitorJSONGetStringListProperty(mon, cpuQOMPath, + "unavailable-features", + propsDisabled) < 0) + return -1; + + return 0; } @@ -6760,17 +6770,11 @@ qemuMonitorJSONGetGuestCPU(qemuMonitor *mon, return -1; if (qemuMonitorJSONGetCPUProperties(mon, qomListGet, cpuQOMPath, - &propsEnabled) < 0) + &propsEnabled, &propsDisabled) < 0) return -1; - if (qemuMonitorJSONCPUDataAddFeatures(cpuEnabled, propsEnabled, translate) < 0) - return -1; - - if (qemuMonitorJSONGetStringListProperty(mon, cpuQOMPath, - "unavailable-features", &propsDisabled) < 0) - return -1; - - if (qemuMonitorJSONCPUDataAddFeatures(cpuDisabled, propsDisabled, translate) < 0) + if (qemuMonitorJSONCPUDataAddFeatures(cpuEnabled, propsEnabled, translate) < 0 || + qemuMonitorJSONCPUDataAddFeatures(cpuDisabled, propsDisabled, translate) < 0) return -1; *enabled = g_steal_pointer(&cpuEnabled); -- 2.51.0

On Thu, Sep 04, 2025 at 16:47:01 +0200, Jiri Denemark via Devel wrote:
From: Jiri Denemark <jdenemar@redhat.com>
Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- src/qemu/qemu_monitor_json.c | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-)
Reviewed-by: Peter Krempa <pkrempa@redhat.com>

From: Jiri Denemark <jdenemar@redhat.com> With qom-list-get we already have the value of unavailable-features property in the returned object (just like we have all values of all bool properties). Let's use the value from there instead of querying for it separately using qom-get. After this patch only a single QMP command is used for getting all the required info about guest CPUs created by QEMU 10.1 or newer. Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- src/qemu/qemu_monitor_json.c | 32 ++++++++++++++++--- .../get-guest-cpu-SierraForest.json | 23 ------------- .../get-guest-cpu-SkylakeClient.json | 14 -------- 3 files changed, 27 insertions(+), 42 deletions(-) diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c index f8be1a79b1..9345115241 100644 --- a/src/qemu/qemu_monitor_json.c +++ b/src/qemu/qemu_monitor_json.c @@ -6598,6 +6598,7 @@ struct _qemuMonitorJSONCPUPropsFilterData { qemuMonitor *mon; bool values; const char *cpuQOMPath; + virJSONValue *unavailableFeatures; }; static int @@ -6607,8 +6608,22 @@ qemuMonitorJSONCPUPropsFilter(const char *name, { struct _qemuMonitorJSONCPUPropsFilterData *data = opaque; bool enabled = false; + const char *type = virJSONValueObjectGetString(propData, "type"); - if (STRNEQ_NULLABLE(virJSONValueObjectGetString(propData, "type"), "bool")) + if (data->values && + STREQ(name, "unavailable-features") && + STREQ_NULLABLE(type, "strList")) { + data->unavailableFeatures = virJSONValueObjectGetArray(propData, "value"); + if (!data->unavailableFeatures) { + virReportError(VIR_ERR_INTERNAL_ERROR, + _("property '%1$s' in reply data was missing value"), + name); + return -1; + } + return 1; + } + + if (STRNEQ_NULLABLE(type, "bool")) return 1; if (data->values) { @@ -6651,6 +6666,7 @@ qemuMonitorJSONGetCPUProperties(qemuMonitor *mon, .mon = mon, .values = qomListGet, .cpuQOMPath = cpuQOMPath, + .unavailableFeatures = NULL, }; *propsEnabled = NULL; @@ -6704,10 +6720,16 @@ qemuMonitorJSONGetCPUProperties(qemuMonitor *mon, &filterData, propsEnabled) < 0) return -1; - if (qemuMonitorJSONGetStringListProperty(mon, cpuQOMPath, - "unavailable-features", - propsDisabled) < 0) - return -1; + if (filterData.unavailableFeatures) { + *propsDisabled = virJSONValueArrayToStringList(filterData.unavailableFeatures); + if (!*propsDisabled) + return -1; + } else { + if (qemuMonitorJSONGetStringListProperty(mon, cpuQOMPath, + "unavailable-features", + propsDisabled) < 0) + return -1; + } return 0; } diff --git a/tests/qemumonitorjsondata/get-guest-cpu-SierraForest.json b/tests/qemumonitorjsondata/get-guest-cpu-SierraForest.json index d64ae84532..f5c41cf9b6 100644 --- a/tests/qemumonitorjsondata/get-guest-cpu-SierraForest.json +++ b/tests/qemumonitorjsondata/get-guest-cpu-SierraForest.json @@ -2960,26 +2960,3 @@ ], "id": "libvirt-1" } - -{ - "execute": "qom-get", - "arguments": { - "path": "/machine/unattached/device[0]", - "property": "unavailable-features" - }, - "id": "libvirt-2" -} - -{ - "return": [ - "bus-lock-detect", - "cmpccxadd", - "avx-ifma", - "wbnoinvd", - "pbrsb-no", - "avx-vnni-int8", - "avx-ne-convert", - "mcdt-no" - ], - "id": "libvirt-2" -} diff --git a/tests/qemumonitorjsondata/get-guest-cpu-SkylakeClient.json b/tests/qemumonitorjsondata/get-guest-cpu-SkylakeClient.json index 76b66ded20..b5bea8fd61 100644 --- a/tests/qemumonitorjsondata/get-guest-cpu-SkylakeClient.json +++ b/tests/qemumonitorjsondata/get-guest-cpu-SkylakeClient.json @@ -2951,17 +2951,3 @@ ], "id": "libvirt-1" } - -{ - "execute": "qom-get", - "arguments": { - "path": "/machine/unattached/device[0]", - "property": "unavailable-features" - }, - "id": "libvirt-2" -} - -{ - "return": [], - "id": "libvirt-2" -} -- 2.51.0

On Thu, Sep 04, 2025 at 16:47:02 +0200, Jiri Denemark via Devel wrote:
From: Jiri Denemark <jdenemar@redhat.com>
With qom-list-get we already have the value of unavailable-features property in the returned object (just like we have all values of all bool properties). Let's use the value from there instead of querying for it separately using qom-get.
After this patch only a single QMP command is used for getting all the required info about guest CPUs created by QEMU 10.1 or newer.
Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- src/qemu/qemu_monitor_json.c | 32 ++++++++++++++++--- .../get-guest-cpu-SierraForest.json | 23 ------------- .../get-guest-cpu-SkylakeClient.json | 14 -------- 3 files changed, 27 insertions(+), 42 deletions(-)
Reviewed-by: Peter Krempa <pkrempa@redhat.com>

On a Thursday in 2025, Jiri Denemark via Devel wrote:
When a domain starts we need to check what CPU features were enabled and if any of the features we asked for were disabled. Currently this requires more than 470 QMP commands (and the number is growing everytime QEMU adds a new feature or other property to the CPU object). Thanks to a new qom-list-get QMP command introduced by QEMU 7.1 we can replace all those commands with just a single one.
On my host using a minimal domain with no devices the startup time went down to about 200 ms from 400 ms before this series.
Jiri Denemark (14): qemu: Drop legacy probing of CPU features tests: Add a test for qemuMonitorJSONGetGuestCPU tests: Test qemuMonitorJSONGetGuestCPU with empty unavailable-features qemu: Generalize filtering in qemuMonitorJSONParsePropsList qemu: Move feature filtering to qemuMonitorJSONGetCPUProperties qemu: Parse properties list from any JSON array qemu: Use qom-list-get for checking enabled CPU features tests: Test qemuMonitorJSONGetGuestCPU with qom-get-list qemu: Add qemuMonitorJSONCPUDataAddFeatures helper qemu: Merge qemuMonitorJSONGetCPUData in qemuMonitorJSONGetGuestCPU qemu: Always fetch disabled features in qemuMonitorJSONGetGuestCPU qemu: Merge qemuMonitorJSONGetCPUDataDisabled in qemuMonitorJSONGetGuestCPU qemu: Let qemuMonitorJSONGetCPUProperties also return disabled features qemu: Don't query unavailable-features if qom-list-get is supported
src/qemu/qemu_capabilities.c | 2 + src/qemu/qemu_capabilities.h | 1 + src/qemu/qemu_monitor.c | 43 +- src/qemu/qemu_monitor.h | 6 +- src/qemu/qemu_monitor_json.c | 383 +- src/qemu/qemu_monitor_json.h | 7 +- src/qemu/qemu_process.c | 20 +- .../caps_10.1.0_x86_64.xml | 1 + .../caps_10.2.0_x86_64.xml | 1 + .../get-guest-cpu-SierraForest-disabled.xml | 7 + .../get-guest-cpu-SierraForest-enabled.xml | 9 + .../get-guest-cpu-SierraForest-legacy.json | 8680 +++++++++++++++++ .../get-guest-cpu-SierraForest.json | 2962 ++++++ .../get-guest-cpu-SkylakeClient-disabled.xml | 2 + ...> get-guest-cpu-SkylakeClient-enabled.xml} | 10 +- .../get-guest-cpu-SkylakeClient-legacy.json | 8671 ++++++++++++++++ .../get-guest-cpu-SkylakeClient.json | 2953 ++++++ .../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 | 191 +- 23 files changed, 23532 insertions(+), 576 deletions(-) create mode 100644 tests/qemumonitorjsondata/get-guest-cpu-SierraForest-disabled.xml create mode 100644 tests/qemumonitorjsondata/get-guest-cpu-SierraForest-enabled.xml create mode 100644 tests/qemumonitorjsondata/get-guest-cpu-SierraForest-legacy.json create mode 100644 tests/qemumonitorjsondata/get-guest-cpu-SierraForest.json create mode 100644 tests/qemumonitorjsondata/get-guest-cpu-SkylakeClient-disabled.xml rename tests/qemumonitorjsondata/{qemumonitorjson-getcpu-ecx.data => get-guest-cpu-SkylakeClient-enabled.xml} (53%) create mode 100644 tests/qemumonitorjsondata/get-guest-cpu-SkylakeClient-legacy.json create mode 100644 tests/qemumonitorjsondata/get-guest-cpu-SkylakeClient.json 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
Reviewed-by: Ján Tomko <jtomko@redhat.com> Jano
participants (3)
-
Jiri Denemark
-
Ján Tomko
-
Peter Krempa