Further fix for Xen 4.18

This commit is contained in:
Richard W.M. Jones 2023-12-09 14:36:49 +00:00
parent d047f99265
commit c29054addb
3 changed files with 89 additions and 29 deletions

View File

@ -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 <m.a.young@durham.ac.uk>
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

View File

@ -0,0 +1,83 @@
From 5fed25c696c0e32933d71b4133afe7856b82c11b Mon Sep 17 00:00:00 2001
From: Paolo Bonzini <pbonzini@redhat.com>
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 <stefano.stabellini@amd.com>
Cc: Richard W.M. Jones <rjones@redhat.com>
Cc: Daniel P. Berrangé <berrange@redhat.com>
Reported-by: Michael Young <m.a.young@durham.ac.uk>
Supersedes: <277e21fc78b75ec459efc7f5fde628a0222c63b0.1701989261.git.m.a.young@durham.ac.uk>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
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

View File

@ -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 <rjones@redhat.com> - 2:8.2.0-0.3.rc2
- Further fix for Xen 4.18
* Tue Dec 05 2023 Richard W.M. Jones <rjones@redhat.com> - 2:8.2.0-0.2.rc2
- Bump and rebuild for xen 4.18.0