Fix -cpu max and require libvirt >= 7.1.0.

This commit is contained in:
Richard W.M. Jones 2021-03-18 12:49:49 +00:00
parent e38829eec1
commit 175743174b
2 changed files with 57 additions and 4 deletions

View File

@ -0,0 +1,47 @@
From 13ceb6a87b2869909a6a0e3c8caa962b72e4cb0e Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Thu, 18 Mar 2021 12:32:26 +0000
Subject: [PATCH] appliance: Use <cpu mode="maximum"/> for -cpu max on libvirt.
Note this requires libvirt >= 7.1.0 which was only released in March 2021.
With an older libvirt you will see this error:
Original error from libvirt: unsupported configuration: Invalid mode attribute 'maximum' [code=67 int1=-1]
In theory we could check if this is supported by looking at the
libvirt capabilities and fall back, but this commit does not do that,
in the expectation that most people will be using the default backend
(direct) and on Fedora/RHEL we will add an explicit minimum version
dependency to the package.
qemu support has been around quite a bit longer (at least since 2017).
Fixes: commit 30f74f38bd6e42e783ba80895f4d6826abddd417
---
lib/launch-libvirt.c | 9 ++-------
1 file changed, 2 insertions(+), 7 deletions(-)
diff --git a/lib/launch-libvirt.c b/lib/launch-libvirt.c
index 2d995bee0..194530c49 100644
--- a/lib/launch-libvirt.c
+++ b/lib/launch-libvirt.c
@@ -1183,13 +1183,8 @@ construct_libvirt_xml_cpu (guestfs_h *g,
} end_element ();
}
else if (STREQ (cpu_model, "max")) {
- if (params->data->is_kvm)
- attribute ("mode", "host-passthrough");
- else
- attribute ("mode", "host-model");
- start_element ("model") {
- attribute ("fallback", "allow");
- } end_element ();
+ /* https://bugzilla.redhat.com/show_bug.cgi?id=1935572#c11 */
+ attribute ("mode", "maximum");
}
else
single_element ("model", cpu_model);
--
2.29.0.rc2

View File

@ -56,7 +56,7 @@ Summary: Access and modify virtual machine disk images
Name: libguestfs Name: libguestfs
Epoch: 1 Epoch: 1
Version: 1.45.1 Version: 1.45.1
Release: 5%{?dist} Release: 6%{?dist}
License: LGPLv2+ License: LGPLv2+
# Build only for architectures that have a kernel # Build only for architectures that have a kernel
@ -92,6 +92,11 @@ Patch0: %{name}-php8.patch
# Remove dependency on perl(Sys::Virt) (upstream in libguestfs >= 1.45.2) # Remove dependency on perl(Sys::Virt) (upstream in libguestfs >= 1.45.2)
Patch1: 0001-tests-Remove-dependency-on-Sys-Virt.patch Patch1: 0001-tests-Remove-dependency-on-Sys-Virt.patch
# Fix -cpu max mode with libvirt backend.
# Upstream in libguestfs >= 1.45.2.
# Requires libvirt >= 7.1.0
Patch2: 0001-appliance-Use-cpu-mode-maximum-for-cpu-max-on-libvir.patch
%if 0%{patches_touch_autotools} %if 0%{patches_touch_autotools}
BuildRequires: autoconf, automake, libtool, gettext-devel BuildRequires: autoconf, automake, libtool, gettext-devel
%endif %endif
@ -134,7 +139,7 @@ BuildRequires: unzip
BuildRequires: systemd-units BuildRequires: systemd-units
BuildRequires: netpbm-progs BuildRequires: netpbm-progs
BuildRequires: icoutils BuildRequires: icoutils
BuildRequires: libvirt-daemon-kvm >= 5.3.0 BuildRequires: libvirt-daemon-kvm >= 7.1.0
%if !0%{?rhel} %if !0%{?rhel}
BuildRequires: perl(Expect) BuildRequires: perl(Expect)
%endif %endif
@ -328,7 +333,7 @@ Suggests: qemu-block-iscsi
Suggests: qemu-block-rbd Suggests: qemu-block-rbd
Suggests: qemu-block-ssh Suggests: qemu-block-ssh
Recommends: libvirt-daemon-config-network Recommends: libvirt-daemon-config-network
Requires: libvirt-daemon-driver-qemu Requires: libvirt-daemon-driver-qemu >= 7.1.0
Requires: libvirt-daemon-driver-secret Requires: libvirt-daemon-driver-secret
Recommends: libvirt-daemon-driver-storage-core Recommends: libvirt-daemon-driver-storage-core
Requires: selinux-policy >= 3.11.1-63 Requires: selinux-policy >= 3.11.1-63
@ -1310,8 +1315,9 @@ rm ocaml/html/.gitignore
%changelog %changelog
* Thu Mar 18 2021 Richard W.M. Jones <rjones@redhat.com> - 1:1.45.1-5 * Thu Mar 18 2021 Richard W.M. Jones <rjones@redhat.com> - 1:1.45.1-6
- Drop dependency on perl(Sys::Virt). - Drop dependency on perl(Sys::Virt).
- Fix -cpu max and require libvirt >= 7.1.0.
* Wed Mar 10 2021 Richard W.M. Jones <rjones@redhat.com> - 1:1.45.1-4 * Wed Mar 10 2021 Richard W.M. Jones <rjones@redhat.com> - 1:1.45.1-4
- Drop Requires: libvirt-daemon-kvm, pulls in the whole of qemu and subpkgs. - Drop Requires: libvirt-daemon-kvm, pulls in the whole of qemu and subpkgs.