diff --git a/SOURCES/libvirt-qemu_validate-Drop-VIR_DOMAIN_HYPERV_STIMER-dependency-on-VIR_DOMAIN_HYPERV_VPINDEX.patch b/SOURCES/libvirt-qemu_validate-Drop-VIR_DOMAIN_HYPERV_STIMER-dependency-on-VIR_DOMAIN_HYPERV_VPINDEX.patch new file mode 100644 index 0000000..630d1fb --- /dev/null +++ b/SOURCES/libvirt-qemu_validate-Drop-VIR_DOMAIN_HYPERV_STIMER-dependency-on-VIR_DOMAIN_HYPERV_VPINDEX.patch @@ -0,0 +1,70 @@ +From 04b599eb6462ea9db48e18bb45f90e6eb6425850 Mon Sep 17 00:00:00 2001 +Message-ID: <04b599eb6462ea9db48e18bb45f90e6eb6425850.1769181848.git.jdenemar@redhat.com> +From: Michal Privoznik +Date: Tue, 6 Jan 2026 14:37:23 +0100 +Subject: [PATCH] qemu_validate: Drop VIR_DOMAIN_HYPERV_STIMER dependency on + VIR_DOMAIN_HYPERV_VPINDEX +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The original commit (v11.9.0-rc1~84) added a dependency checking +of VIR_DOMAIN_HYPERV_STIMER on VIR_DOMAIN_HYPERV_VPINDEX +(meaning, if stimer is on then vpindex must also be on). It +justified this by citing QEMU documentation: + +Per QEMU documentation (docs/system/i386/hyperv.rst): + +``hv-stimer`` + Enables Hyper-V synthetic timers. + + Requires: ``hv-vpindex``, ``hv-synic``, ``hv-time`` + +While the documentation is almost correct (see previous commit +when it's incorrect), the code express no dependency on vpindex +(kvm_hyperv_properties[] array from target/i386/kvm/kvm.c): + + [HYPERV_FEAT_STIMER] = { + .desc = "synthetic timers (hv-stimer)", + .flags = { + {.func = HV_CPUID_FEATURES, .reg = R_EAX, + .bits = HV_SYNTIMERS_AVAILABLE} + }, + .dependencies = BIT(HYPERV_FEAT_SYNIC) | BIT(HYPERV_FEAT_TIME) + }, + +If transitivity is taken into account then the documentation is +of course correct (minus that one aforementioned special case). +Well, there's no need for us to implement transitional checks. +VIR_DOMAIN_HYPERV_STIMER requires VIR_DOMAIN_HYPERV_SYNIC and +whether that requires VIR_DOMAIN_HYPERV_VPINDEX is another +question. + +Just drop the transitive check. + +Resolves: https://gitlab.com/libvirt/libvirt/-/issues/837 +Resolves: https://issues.redhat.com/browse/RHEL-138689 +Fixes: da261327ea94300d1aa2d3b76ba9dcd4de6160f6 +Signed-off-by: Michal Privoznik +Reviewed-by: Daniel P. Berrangé +(cherry picked from commit 6df374fefc94f5e729870dfe1ff65b62ee986fce) +Resolves: https://issues.redhat.com/browse/RHEL-140916 +Signed-off-by: Michal Privoznik +--- + src/qemu/qemu_validate.c | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c +index 692d0a9f96..cfe2b672ee 100644 +--- a/src/qemu/qemu_validate.c ++++ b/src/qemu/qemu_validate.c +@@ -122,7 +122,6 @@ qemuValidateDomainDefHypervFeatures(const virDomainDef *def) + } + } + +- CHECK_HV_FEAT(VIR_DOMAIN_HYPERV_STIMER, VIR_DOMAIN_HYPERV_VPINDEX); + CHECK_HV_FEAT(VIR_DOMAIN_HYPERV_STIMER, VIR_DOMAIN_HYPERV_SYNIC); + + CHECK_HV_FEAT(VIR_DOMAIN_HYPERV_TLBFLUSH, VIR_DOMAIN_HYPERV_VPINDEX); +-- +2.52.0 diff --git a/SOURCES/libvirt-qemu_validate-Drop-VIR_DOMAIN_HYPERV_SYNIC-dependency-on-VIR_DOMAIN_HYPERV_VPINDEX.patch b/SOURCES/libvirt-qemu_validate-Drop-VIR_DOMAIN_HYPERV_SYNIC-dependency-on-VIR_DOMAIN_HYPERV_VPINDEX.patch new file mode 100644 index 0000000..313f2d0 --- /dev/null +++ b/SOURCES/libvirt-qemu_validate-Drop-VIR_DOMAIN_HYPERV_SYNIC-dependency-on-VIR_DOMAIN_HYPERV_VPINDEX.patch @@ -0,0 +1,48 @@ +From 376748a85d2e31eaf55bc8a12e588b9a6c502bef Mon Sep 17 00:00:00 2001 +Message-ID: <376748a85d2e31eaf55bc8a12e588b9a6c502bef.1769181848.git.jdenemar@redhat.com> +From: Michal Privoznik +Date: Tue, 6 Jan 2026 12:03:56 +0100 +Subject: [PATCH] qemu_validate: Drop VIR_DOMAIN_HYPERV_SYNIC dependency on + VIR_DOMAIN_HYPERV_VPINDEX +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Turns out, that synic hyperv enlightenment not always requires +vpindex. Some (older) machine types (e.g. pc-i440fx-3.0, +pc-q35-3.0, pc-i440fx-rhel7.6.0) can run with synic enabled and vpindex +disabled. This is because they did enable 'x-hv-synic-kvm-only' +CPU property, but starting from QEMU commit v3.1.0-rc0~44^2~9 the +property is disabled by default. + +To avoid parsing machine type version, let's just drop this +dependency validation and rely on QEMU to report sensible error +message. + +Resolves: https://gitlab.com/libvirt/libvirt/-/issues/837 +Resolves: https://issues.redhat.com/browse/RHEL-138689 +Fixes: 1822d030c32d9857020ee8385b0a8808a29a472f +Signed-off-by: Michal Privoznik +Reviewed-by: Daniel P. Berrangé +(cherry picked from commit 8e9a9f86b046c5bc917875f4b3854f13c4b33b55) +Resolves: https://issues.redhat.com/browse/RHEL-140916 +Signed-off-by: Michal Privoznik +--- + src/qemu/qemu_validate.c | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c +index ed769efc7c..692d0a9f96 100644 +--- a/src/qemu/qemu_validate.c ++++ b/src/qemu/qemu_validate.c +@@ -112,8 +112,6 @@ qemuValidateDomainDefHypervFeatures(const virDomainDef *def) + return -1; + } + +- CHECK_HV_FEAT(VIR_DOMAIN_HYPERV_SYNIC, VIR_DOMAIN_HYPERV_VPINDEX); +- + if (def->hyperv.features[VIR_DOMAIN_HYPERV_STIMER] == VIR_TRISTATE_SWITCH_ON) { + if (!virDomainDefHasTimer(def, VIR_DOMAIN_TIMER_NAME_HYPERVCLOCK)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, +-- +2.52.0 diff --git a/SPECS/libvirt.spec b/SPECS/libvirt.spec index 7734081..667ced5 100644 --- a/SPECS/libvirt.spec +++ b/SPECS/libvirt.spec @@ -293,7 +293,7 @@ Summary: Library providing a simple virtualization API Name: libvirt Version: 10.10.0 -Release: 15.6%{?dist}%{?extra_release}.alma.1 +Release: 15.7%{?dist}%{?extra_release}.alma.1 License: GPL-2.0-or-later AND LGPL-2.1-only AND LGPL-2.1-or-later AND OFL-1.1 URL: https://libvirt.org/ @@ -510,6 +510,8 @@ Patch206: libvirt-qemu_monitor-Filter-CPU-features-reported-by-QEMU.patch Patch207: libvirt-qemu-Ignore-ht-CPU-feature.patch Patch208: libvirt-qemu-tpm-Account-for-possible-migration-without-actually-sharing-storage.patch Patch209: libvirt-qemu-correctly-detect-working-TDX-support.patch +Patch210: libvirt-qemu_validate-Drop-VIR_DOMAIN_HYPERV_SYNIC-dependency-on-VIR_DOMAIN_HYPERV_VPINDEX.patch +Patch211: libvirt-qemu_validate-Drop-VIR_DOMAIN_HYPERV_STIMER-dependency-on-VIR_DOMAIN_HYPERV_VPINDEX.patch Requires: libvirt-daemon = %{version}-%{release} @@ -2835,9 +2837,13 @@ exit 0 %endif %changelog -* Thu Jan 29 2026 Eduard Abdullin - 10.10.0-15.6.alma.1 +* Wed Feb 18 2026 Eduard Abdullin - 10.10.0-15.7.alma.1 - Enable building for ppc64le +* Fri Jan 23 2026 Jiri Denemark - 10.10.0-15.7.el9_7 +- qemu_validate: Drop VIR_DOMAIN_HYPERV_SYNIC dependency on VIR_DOMAIN_HYPERV_VPINDEX (RHEL-140916) +- qemu_validate: Drop VIR_DOMAIN_HYPERV_STIMER dependency on VIR_DOMAIN_HYPERV_VPINDEX (RHEL-140916) + * Thu Dec 18 2025 Jiri Denemark - 10.10.0-15.6.el9_7 - qemu: correctly detect working TDX support (RHEL-136239)