From c29054addb1ac9accd9f2c8cc3ace00195cc0974 Mon Sep 17 00:00:00 2001 From: Richard W.M. Jones Date: Dec 09 2023 14:46:47 +0000 Subject: Further fix for Xen 4.18 --- diff --git a/0001-fix-qemu-build-with-xen-4.18.0.patch b/0001-fix-qemu-build-with-xen-4.18.0.patch deleted file mode 100644 index ec716ac..0000000 --- a/0001-fix-qemu-build-with-xen-4.18.0.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 3a2e5ecdde13bc4eb7f173f6cb36b1a6c752aa1f Mon Sep 17 00:00:00 2001 -Message-ID: <3a2e5ecdde13bc4eb7f173f6cb36b1a6c752aa1f.1701978796.git.m.a.young@durham.ac.uk> -From: Michael Young -Date: Thu, 7 Dec 2023 19:49:20 +0000 -Subject: [PATCH] fix qemu build with xen-4.18.0 - ---- - include/hw/xen/xen_native.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/include/hw/xen/xen_native.h b/include/hw/xen/xen_native.h -index 6f09c48823..04b1ef4d34 100644 ---- a/include/hw/xen/xen_native.h -+++ b/include/hw/xen/xen_native.h -@@ -532,7 +532,7 @@ static inline int xendevicemodel_set_irq_level(xendevicemodel_handle *dmod, - } - #endif - --#if CONFIG_XEN_CTRL_INTERFACE_VERSION <= 41700 -+#if CONFIG_XEN_CTRL_INTERFACE_VERSION >= 41700 - #define GUEST_VIRTIO_MMIO_BASE xen_mk_ullong(0x02000000) - #define GUEST_VIRTIO_MMIO_SIZE xen_mk_ullong(0x00100000) - #define GUEST_VIRTIO_MMIO_SPI_FIRST 33 --- -2.43.0 - diff --git a/0001-xen-fix-condition-for-enabling-the-Xen-accelerator.patch b/0001-xen-fix-condition-for-enabling-the-Xen-accelerator.patch new file mode 100644 index 0000000..5be3634 --- /dev/null +++ b/0001-xen-fix-condition-for-enabling-the-Xen-accelerator.patch @@ -0,0 +1,83 @@ +From 5fed25c696c0e32933d71b4133afe7856b82c11b Mon Sep 17 00:00:00 2001 +From: Paolo Bonzini +Date: Sat, 9 Dec 2023 15:32:22 +0100 +Subject: [PATCH] xen: fix condition for enabling the Xen accelerator +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +A misspelled condition in xen_native.h is hiding a bug in the enablement of +Xen for qemu-system-aarch64. The bug becomes apparent when building for +Xen 4.18. + +While the i386 emulator provides the xenpv machine type for multiple architectures, +and therefore can be compiled with Xen enabled even when the host is Arm, the +opposite is not true: qemu-system-aarch64 can only be compiled with Xen support +enabled when the host is Arm. + +Expand the computation of accelerator_targets['CONFIG_XEN'] similar to what is +already there for KVM, and fix xen_native.h. + +Cc: Stefano Stabellini +Cc: Richard W.M. Jones +Cc: Daniel P. Berrangé +Reported-by: Michael Young +Supersedes: <277e21fc78b75ec459efc7f5fde628a0222c63b0.1701989261.git.m.a.young@durham.ac.uk> +Signed-off-by: Paolo Bonzini +--- + include/hw/xen/xen_native.h | 2 +- + meson.build | 17 ++++++++++------- + 2 files changed, 11 insertions(+), 8 deletions(-) + +diff --git a/include/hw/xen/xen_native.h b/include/hw/xen/xen_native.h +index 6f09c48823..1a5ad693a4 100644 +--- a/include/hw/xen/xen_native.h ++++ b/include/hw/xen/xen_native.h +@@ -532,7 +532,7 @@ static inline int xendevicemodel_set_irq_level(xendevicemodel_handle *dmod, + } + #endif + +-#if CONFIG_XEN_CTRL_INTERFACE_VERSION <= 41700 ++#if CONFIG_XEN_CTRL_INTERFACE_VERSION < 41700 + #define GUEST_VIRTIO_MMIO_BASE xen_mk_ullong(0x02000000) + #define GUEST_VIRTIO_MMIO_SIZE xen_mk_ullong(0x00100000) + #define GUEST_VIRTIO_MMIO_SPI_FIRST 33 +diff --git a/meson.build b/meson.build +index d2c4c2adb3..6c77d9687d 100644 +--- a/meson.build ++++ b/meson.build +@@ -123,21 +123,24 @@ if get_option('kvm').allowed() and targetos == 'linux' + kvm_targets_c = '"' + '" ,"'.join(kvm_targets) + '"' + endif + config_host_data.set('CONFIG_KVM_TARGETS', kvm_targets_c) +- + accelerator_targets = { 'CONFIG_KVM': kvm_targets } + ++if cpu in ['x86', 'x86_64'] ++ xen_targets = ['i386-softmmu', 'x86_64-softmmu'] ++elif cpu in ['arm', 'aarch64'] ++ # i386 emulator provides xenpv machine type for multiple architectures ++ xen_targets = ['i386-softmmu', 'x86_64-softmmu', 'aarch64-softmmu'] ++else ++ xen_targets = [] ++endif ++accelerator_targets += { 'CONFIG_XEN': xen_targets } ++ + if cpu in ['aarch64'] + accelerator_targets += { + 'CONFIG_HVF': ['aarch64-softmmu'] + } + endif + +-if cpu in ['x86', 'x86_64', 'arm', 'aarch64'] +- # i386 emulator provides xenpv machine type for multiple architectures +- accelerator_targets += { +- 'CONFIG_XEN': ['i386-softmmu', 'x86_64-softmmu', 'aarch64-softmmu'], +- } +-endif + if cpu in ['x86', 'x86_64'] + accelerator_targets += { + 'CONFIG_HVF': ['x86_64-softmmu'], +-- +2.41.0 + diff --git a/qemu.spec b/qemu.spec index 326ffa7..fb3ba1d 100644 --- a/qemu.spec +++ b/qemu.spec @@ -357,7 +357,7 @@ Obsoletes: sgabios-bin <= 1:0.20180715git-10.fc38 %endif # To prevent rpmdev-bumpspec breakage -%global baserelease 0.2 +%global baserelease 0.3 Summary: QEMU is a FAST! processor emulator Name: qemu @@ -373,8 +373,8 @@ Source0: https://download.qemu.org/%{name}-%{version}%{?rcstr}.tar.xz # Fix pvh.img ld build failure on fedora rawhide Patch: 0001-pc-bios-optionrom-Fix-pvh.img-ld-build-failure-on-fe.patch -# See https://lists.gnu.org/archive/html/qemu-devel/2023-12/msg01035.html -Patch: 0001-fix-qemu-build-with-xen-4.18.0.patch +# See https://lists.gnu.org/archive/html/qemu-devel/2023-12/msg01165.html +Patch: 0001-xen-fix-condition-for-enabling-the-Xen-accelerator.patch Source10: qemu-guest-agent.service Source11: 99-qemu-guest-agent.rules @@ -3125,6 +3125,9 @@ useradd -r -u 107 -g qemu -G kvm -d / -s /sbin/nologin \ %changelog +* Sat Dec 9 2023 Richard W.M. Jones - 2:8.2.0-0.3.rc2 +- Further fix for Xen 4.18 + * Tue Dec 05 2023 Richard W.M. Jones - 2:8.2.0-0.2.rc2 - Bump and rebuild for xen 4.18.0