From 64f14820e423b85d5af0ffffe87f43f2332b023e Mon Sep 17 00:00:00 2001 Message-ID: <64f14820e423b85d5af0ffffe87f43f2332b023e.1763133105.git.jdenemar@redhat.com> From: Michal Privoznik Date: Tue, 30 Sep 2025 15:37:24 +0200 Subject: [PATCH] qemu_capabilities: Fetch new hyperv domcaps MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Now that everything is prepared, we can start storing the default values for some hyperv features that are reported in domain capabilities XML later. Signed-off-by: Michal Privoznik Reviewed-by: Ján Tomko (cherry picked from commit ba011bebd9a13d4926aeb56d4c88f0e03ef22c50) Conflicts: tests/domaincapsdata/qemu_10.0.0-q35.x86_64+amdsev.xml tests/domaincapsdata/qemu_10.0.0.x86_64+amdsev.xml tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml tests/domaincapsdata/qemu_6.0.0.x86_64.xml tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml tests/domaincapsdata/qemu_6.1.0.x86_64.xml tests/domaincapsdata/qemu_9.2.0-q35.x86_64+amdsev.xml tests/domaincapsdata/qemu_9.2.0-tcg.x86_64+amdsev.xml tests/domaincapsdata/qemu_9.2.0.x86_64+amdsev.xml tests/qemucapabilitiesdata/caps_10.1.0_x86_64.xml tests/qemucapabilitiesdata/caps_5.2.0_x86_64.xml tests/qemucapabilitiesdata/caps_6.0.0_x86_64.xml tests/qemucapabilitiesdata/caps_6.1.0_x86_64.xml: Some files don't exist downstream yet, others have context issues. Regenerated with VIR_TEST_REGENERATE_OUTPUT=1. Resolves: https://issues.redhat.com/browse/RHEL-122930 Signed-off-by: Michal Privoznik --- src/qemu/qemu_capabilities.c | 44 +++++++++++++++++++ .../domaincapsdata/qemu_10.0.0-q35.x86_64.xml | 7 +++ .../domaincapsdata/qemu_10.0.0-tcg.x86_64.xml | 7 +++ tests/domaincapsdata/qemu_10.0.0.x86_64.xml | 7 +++ .../qemu_10.1.0-q35.x86_64+inteltdx.xml | 7 +++ .../qemu_10.1.0-tcg.x86_64+inteltdx.xml | 7 +++ .../qemu_10.1.0.x86_64+inteltdx.xml | 7 +++ .../domaincapsdata/qemu_8.0.0-q35.x86_64.xml | 7 +++ .../domaincapsdata/qemu_8.0.0-tcg.x86_64.xml | 7 +++ tests/domaincapsdata/qemu_8.0.0.x86_64.xml | 7 +++ .../domaincapsdata/qemu_8.1.0-q35.x86_64.xml | 7 +++ .../domaincapsdata/qemu_8.1.0-tcg.x86_64.xml | 7 +++ tests/domaincapsdata/qemu_8.1.0.x86_64.xml | 7 +++ .../domaincapsdata/qemu_8.2.0-q35.x86_64.xml | 7 +++ .../domaincapsdata/qemu_8.2.0-tcg.x86_64.xml | 7 +++ tests/domaincapsdata/qemu_8.2.0.x86_64.xml | 7 +++ .../domaincapsdata/qemu_9.0.0-q35.x86_64.xml | 7 +++ .../domaincapsdata/qemu_9.0.0-tcg.x86_64.xml | 7 +++ tests/domaincapsdata/qemu_9.0.0.x86_64.xml | 7 +++ .../domaincapsdata/qemu_9.1.0-q35.x86_64.xml | 7 +++ .../domaincapsdata/qemu_9.1.0-tcg.x86_64.xml | 7 +++ tests/domaincapsdata/qemu_9.1.0.x86_64.xml | 7 +++ .../domaincapsdata/qemu_9.2.0-q35.x86_64.xml | 7 +++ .../domaincapsdata/qemu_9.2.0-tcg.x86_64.xml | 7 +++ tests/domaincapsdata/qemu_9.2.0.x86_64.xml | 7 +++ .../caps_10.0.0_x86_64.xml | 5 +++ .../caps_10.1.0_x86_64+inteltdx.xml | 5 +++ .../caps_8.0.0_x86_64.xml | 5 +++ .../caps_8.1.0_x86_64.xml | 5 +++ .../caps_8.2.0_x86_64.xml | 5 +++ .../caps_9.0.0_x86_64.xml | 5 +++ .../caps_9.1.0_x86_64.xml | 5 +++ .../caps_9.2.0_x86_64.xml | 5 +++ 33 files changed, 252 insertions(+) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 0452600195..edd4494fa1 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -3133,6 +3133,50 @@ virQEMUCapsProbeHypervCapabilities(virQEMUCaps *qemuCaps, if (!(name = STRSKIP(prop.name, "hv-"))) continue; + if (STREQ(prop.name, VIR_CPU_x86_HV_SPINLOCKS)) { + if (prop.type != QEMU_MONITOR_CPU_PROPERTY_NUMBER) { + VIR_DEBUG("Unexpected type '%s' for name '%s'", + qemuMonitorCPUPropertyTypeToString(prop.type), prop.name); + continue; + } + + if ((uint32_t)prop.value.number != (uint32_t)-1) + hvcaps->spinlocks = prop.value.number; + } else if (STREQ(prop.name, VIR_CPU_x86_HV_STIMER_DIRECT)) { + if (prop.type != QEMU_MONITOR_CPU_PROPERTY_BOOLEAN) { + VIR_DEBUG("Unexpected type '%s' for name '%s'", + qemuMonitorCPUPropertyTypeToString(prop.type), prop.name); + } else { + hvcaps->stimer_direct = virTristateSwitchFromBool(prop.value.boolean); + } + continue; + } else if (STREQ(prop.name, VIR_CPU_x86_HV_TLBFLUSH_DIRECT)) { + if (prop.type != QEMU_MONITOR_CPU_PROPERTY_BOOLEAN) { + VIR_DEBUG("Unexpected type '%s' for name '%s'", + qemuMonitorCPUPropertyTypeToString(prop.type), prop.name); + } else { + hvcaps->tlbflush_direct = virTristateSwitchFromBool(prop.value.boolean); + } + continue; + } else if (STREQ(prop.name, VIR_CPU_x86_HV_TLBFLUSH_EXT)) { + if (prop.type != QEMU_MONITOR_CPU_PROPERTY_BOOLEAN) { + VIR_DEBUG("Unexpected type '%s' for name '%s'", + qemuMonitorCPUPropertyTypeToString(prop.type), prop.name); + } else { + hvcaps->tlbflush_extended = virTristateSwitchFromBool(prop.value.boolean); + } + continue; + } else if (STREQ(prop.name, "hv-vendor-id")) { + if (prop.type != QEMU_MONITOR_CPU_PROPERTY_STRING) { + VIR_DEBUG("Unexpected type '%s' for name '%s'", + qemuMonitorCPUPropertyTypeToString(prop.type), prop.name); + continue; + } + + if (STRNEQ(prop.value.string, "")) + hvcaps->vendor_id = g_strdup(prop.value.string); + } + hvprop = virDomainHypervTypeFromString(name); if (hvprop < 0) { diff --git a/tests/domaincapsdata/qemu_10.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_10.0.0-q35.x86_64.xml index f1a7963d34..d730151180 100644 --- a/tests/domaincapsdata/qemu_10.0.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_10.0.0-q35.x86_64.xml @@ -1695,6 +1695,13 @@ emsr_bitmap xmm_input + + 4095 + on + on + on + Linux KVM Hv + diff --git a/tests/domaincapsdata/qemu_10.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_10.0.0-tcg.x86_64.xml index 9a7d39c1f8..5a7a574009 100644 --- a/tests/domaincapsdata/qemu_10.0.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_10.0.0-tcg.x86_64.xml @@ -1804,6 +1804,13 @@ emsr_bitmap xmm_input + + 4095 + on + on + on + Linux KVM Hv + diff --git a/tests/domaincapsdata/qemu_10.0.0.x86_64.xml b/tests/domaincapsdata/qemu_10.0.0.x86_64.xml index 64dc451eda..ee22265745 100644 --- a/tests/domaincapsdata/qemu_10.0.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_10.0.0.x86_64.xml @@ -1695,6 +1695,13 @@ emsr_bitmap xmm_input + + 4095 + on + on + on + Linux KVM Hv + diff --git a/tests/domaincapsdata/qemu_10.1.0-q35.x86_64+inteltdx.xml b/tests/domaincapsdata/qemu_10.1.0-q35.x86_64+inteltdx.xml index fedf50a52a..a3f337d95b 100644 --- a/tests/domaincapsdata/qemu_10.1.0-q35.x86_64+inteltdx.xml +++ b/tests/domaincapsdata/qemu_10.1.0-q35.x86_64+inteltdx.xml @@ -756,6 +756,13 @@ emsr_bitmap xmm_input + + 4095 + on + on + on + Linux KVM Hv + diff --git a/tests/domaincapsdata/qemu_10.1.0-tcg.x86_64+inteltdx.xml b/tests/domaincapsdata/qemu_10.1.0-tcg.x86_64+inteltdx.xml index c9913316b8..9a841c114c 100644 --- a/tests/domaincapsdata/qemu_10.1.0-tcg.x86_64+inteltdx.xml +++ b/tests/domaincapsdata/qemu_10.1.0-tcg.x86_64+inteltdx.xml @@ -1803,6 +1803,13 @@ emsr_bitmap xmm_input + + 4095 + on + on + on + Linux KVM Hv + diff --git a/tests/domaincapsdata/qemu_10.1.0.x86_64+inteltdx.xml b/tests/domaincapsdata/qemu_10.1.0.x86_64+inteltdx.xml index c1aebf16b2..b2937414d4 100644 --- a/tests/domaincapsdata/qemu_10.1.0.x86_64+inteltdx.xml +++ b/tests/domaincapsdata/qemu_10.1.0.x86_64+inteltdx.xml @@ -756,6 +756,13 @@ emsr_bitmap xmm_input + + 4095 + on + on + on + Linux KVM Hv + diff --git a/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml index b8c376cb14..84a200e572 100644 --- a/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml @@ -1242,6 +1242,13 @@ emsr_bitmap xmm_input + + 4095 + on + off + off + Linux KVM Hv + diff --git a/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml index d3c9830a1a..92d4d85c95 100644 --- a/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml @@ -1735,6 +1735,13 @@ emsr_bitmap xmm_input + + 4095 + on + off + off + Linux KVM Hv + diff --git a/tests/domaincapsdata/qemu_8.0.0.x86_64.xml b/tests/domaincapsdata/qemu_8.0.0.x86_64.xml index e8df30ae07..bca6510b5d 100644 --- a/tests/domaincapsdata/qemu_8.0.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_8.0.0.x86_64.xml @@ -1242,6 +1242,13 @@ emsr_bitmap xmm_input + + 4095 + on + off + off + Linux KVM Hv + diff --git a/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml index e80e175376..e9455d302c 100644 --- a/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml @@ -1500,6 +1500,13 @@ emsr_bitmap xmm_input + + 4095 + on + on + on + Linux KVM Hv + diff --git a/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml index 62ffabb3e2..adfd3f67ac 100644 --- a/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml @@ -1756,6 +1756,13 @@ emsr_bitmap xmm_input + + 4095 + on + on + on + Linux KVM Hv + diff --git a/tests/domaincapsdata/qemu_8.1.0.x86_64.xml b/tests/domaincapsdata/qemu_8.1.0.x86_64.xml index 4117d926cb..a0b2e72b03 100644 --- a/tests/domaincapsdata/qemu_8.1.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_8.1.0.x86_64.xml @@ -1500,6 +1500,13 @@ emsr_bitmap xmm_input + + 4095 + on + on + on + Linux KVM Hv + diff --git a/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml index dfa88bcf96..b95bcb4716 100644 --- a/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml @@ -1502,6 +1502,13 @@ emsr_bitmap xmm_input + + 4095 + on + on + on + Linux KVM Hv + diff --git a/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml index 327cad253e..f4c775f4e6 100644 --- a/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml @@ -1723,6 +1723,13 @@ emsr_bitmap xmm_input + + 4095 + on + on + on + Linux KVM Hv + diff --git a/tests/domaincapsdata/qemu_8.2.0.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0.x86_64.xml index f8dbb717f1..6f80d7e852 100644 --- a/tests/domaincapsdata/qemu_8.2.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_8.2.0.x86_64.xml @@ -1502,6 +1502,13 @@ emsr_bitmap xmm_input + + 4095 + on + on + on + Linux KVM Hv + diff --git a/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml index c5a653f57b..d01c6734be 100644 --- a/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml @@ -1502,6 +1502,13 @@ emsr_bitmap xmm_input + + 4095 + on + on + on + Linux KVM Hv + diff --git a/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml index 30876c5fef..09625af704 100644 --- a/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml @@ -1652,6 +1652,13 @@ emsr_bitmap xmm_input + + 4095 + on + on + on + Linux KVM Hv + diff --git a/tests/domaincapsdata/qemu_9.0.0.x86_64.xml b/tests/domaincapsdata/qemu_9.0.0.x86_64.xml index 6c141e1cb9..bfb75d5346 100644 --- a/tests/domaincapsdata/qemu_9.0.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_9.0.0.x86_64.xml @@ -1502,6 +1502,13 @@ emsr_bitmap xmm_input + + 4095 + on + on + on + Linux KVM Hv + diff --git a/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml index 9445d999b5..e1b93389fc 100644 --- a/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml @@ -1638,6 +1638,13 @@ emsr_bitmap xmm_input + + 4095 + on + on + on + Linux KVM Hv + diff --git a/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml index 61d92550c1..91479bf34f 100644 --- a/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml @@ -1757,6 +1757,13 @@ emsr_bitmap xmm_input + + 4095 + on + on + on + Linux KVM Hv + diff --git a/tests/domaincapsdata/qemu_9.1.0.x86_64.xml b/tests/domaincapsdata/qemu_9.1.0.x86_64.xml index 5e87efe5e8..67f643bc1a 100644 --- a/tests/domaincapsdata/qemu_9.1.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_9.1.0.x86_64.xml @@ -1638,6 +1638,13 @@ emsr_bitmap xmm_input + + 4095 + on + on + on + Linux KVM Hv + diff --git a/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml index d5db9af49e..ec3db76484 100644 --- a/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml @@ -1695,6 +1695,13 @@ emsr_bitmap xmm_input + + 4095 + on + on + on + Linux KVM Hv + diff --git a/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml index 7ccdc11412..b3af908680 100644 --- a/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml @@ -1804,6 +1804,13 @@ emsr_bitmap xmm_input + + 4095 + on + on + on + Linux KVM Hv + diff --git a/tests/domaincapsdata/qemu_9.2.0.x86_64.xml b/tests/domaincapsdata/qemu_9.2.0.x86_64.xml index 05a5ce4bee..39a7b6eed5 100644 --- a/tests/domaincapsdata/qemu_9.2.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_9.2.0.x86_64.xml @@ -1695,6 +1695,13 @@ emsr_bitmap xmm_input + + 4095 + on + on + on + Linux KVM Hv + diff --git a/tests/qemucapabilitiesdata/caps_10.0.0_x86_64.xml b/tests/qemucapabilitiesdata/caps_10.0.0_x86_64.xml index 432d60b02b..18977d63da 100644 --- a/tests/qemucapabilitiesdata/caps_10.0.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_10.0.0_x86_64.xml @@ -4158,5 +4158,10 @@ + 4095 + on + on + on + Linux KVM Hv diff --git a/tests/qemucapabilitiesdata/caps_10.1.0_x86_64+inteltdx.xml b/tests/qemucapabilitiesdata/caps_10.1.0_x86_64+inteltdx.xml index 54b09813a8..09bff5f829 100644 --- a/tests/qemucapabilitiesdata/caps_10.1.0_x86_64+inteltdx.xml +++ b/tests/qemucapabilitiesdata/caps_10.1.0_x86_64+inteltdx.xml @@ -3584,5 +3584,10 @@ + 4095 + on + on + on + Linux KVM Hv diff --git a/tests/qemucapabilitiesdata/caps_8.0.0_x86_64.xml b/tests/qemucapabilitiesdata/caps_8.0.0_x86_64.xml index f28b8df68e..d805b9ec9a 100644 --- a/tests/qemucapabilitiesdata/caps_8.0.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_8.0.0_x86_64.xml @@ -3460,5 +3460,10 @@ + 4095 + on + off + off + Linux KVM Hv diff --git a/tests/qemucapabilitiesdata/caps_8.1.0_x86_64.xml b/tests/qemucapabilitiesdata/caps_8.1.0_x86_64.xml index d6fbb11064..14ce16bcc8 100644 --- a/tests/qemucapabilitiesdata/caps_8.1.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_8.1.0_x86_64.xml @@ -3789,5 +3789,10 @@ + 4095 + on + on + on + Linux KVM Hv diff --git a/tests/qemucapabilitiesdata/caps_8.2.0_x86_64.xml b/tests/qemucapabilitiesdata/caps_8.2.0_x86_64.xml index 27ecaee290..8c7ed8c91b 100644 --- a/tests/qemucapabilitiesdata/caps_8.2.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_8.2.0_x86_64.xml @@ -3763,5 +3763,10 @@ + 4095 + on + on + on + Linux KVM Hv diff --git a/tests/qemucapabilitiesdata/caps_9.0.0_x86_64.xml b/tests/qemucapabilitiesdata/caps_9.0.0_x86_64.xml index 452e7384c0..009025a255 100644 --- a/tests/qemucapabilitiesdata/caps_9.0.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_9.0.0_x86_64.xml @@ -3698,5 +3698,10 @@ + 4095 + on + on + on + Linux KVM Hv diff --git a/tests/qemucapabilitiesdata/caps_9.1.0_x86_64.xml b/tests/qemucapabilitiesdata/caps_9.1.0_x86_64.xml index 26883bd672..0482a6feb9 100644 --- a/tests/qemucapabilitiesdata/caps_9.1.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_9.1.0_x86_64.xml @@ -3954,5 +3954,10 @@ + 4095 + on + on + on + Linux KVM Hv diff --git a/tests/qemucapabilitiesdata/caps_9.2.0_x86_64.xml b/tests/qemucapabilitiesdata/caps_9.2.0_x86_64.xml index 1353761fab..be8718defb 100644 --- a/tests/qemucapabilitiesdata/caps_9.2.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_9.2.0_x86_64.xml @@ -3935,5 +3935,10 @@ + 4095 + on + on + on + Linux KVM Hv -- 2.51.1