* [PATCH v2 0/3] Add driver domains test
@ 2025-08-08 14:32 Marek Marczykowski-Górecki
2025-08-08 14:32 ` [PATCH v2 1/3] CI: Add driver domains tests Marek Marczykowski-Górecki
` (2 more replies)
0 siblings, 3 replies; 7+ messages in thread
From: Marek Marczykowski-Górecki @ 2025-08-08 14:32 UTC (permalink / raw)
To: xen-devel; +Cc: Marek Marczykowski-Górecki
This is intended to detect issues like recent xl devd crash in domU.
Pipeline:
https://gitlab.com/xen-project/people/marmarek/xen/-/pipelines/1974548454
I did checked that indeed it fails with the fix reverted - that's why the
second patch - Alpine version did not detected that regression.
Requires debian in test-artifacts repo - patch sent separately.
Marek Marczykowski-Górecki (3):
CI: Add driver domains tests
CI: Add configure --enable-systemd for full build
CI: Run driver domains test on Debian too
automation/build/debian/12-x86_64.dockerfile | 1 +-
automation/gitlab-ci/test.yaml | 27 +++-
automation/scripts/build | 3 +-
automation/scripts/qemu-driverdomains-x86_64.sh | 144 +++++++++++++++++-
4 files changed, 175 insertions(+)
create mode 100755 automation/scripts/qemu-driverdomains-x86_64.sh
base-commit: dbcbbed4e9dc25faa211d359c2f04a9c70f087c9
--
git-series 0.9.1
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH v2 1/3] CI: Add driver domains tests
2025-08-08 14:32 [PATCH v2 0/3] Add driver domains test Marek Marczykowski-Górecki
@ 2025-08-08 14:32 ` Marek Marczykowski-Górecki
2025-08-08 17:02 ` dmkhn
2025-08-08 14:32 ` [PATCH v2 2/3] CI: Add configure --enable-systemd for full build Marek Marczykowski-Górecki
2025-08-08 14:32 ` [PATCH v2 3/3] CI: Run driver domains test on Debian too Marek Marczykowski-Górecki
2 siblings, 1 reply; 7+ messages in thread
From: Marek Marczykowski-Górecki @ 2025-08-08 14:32 UTC (permalink / raw)
To: xen-devel
Cc: Marek Marczykowski-Górecki, Doug Goldstein,
Stefano Stabellini
Setup a simple two domU system. One with network backend, running
xendriverdomain service, and one with frontend, trying to ping the
backend.
Contrary to other similar tests, use disk image instead of initrd, to
allow bigger rootfs without adding more RAM (for both dom0 and domU).
But keep using pxelinux as a bootloader as it's easier to setup than
installing grub on the disk. Theoretically, it could be started via direct
kernel boot in QEMU, but pxelinux is slightly closer to real-world
deployment.
Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
Changes in v2:
- use heredoc
- limit ping loop iterations
- use full "backend" / "frontend" in disk image names
- print domU consoles directly to /dev/console, to avoid systemd-added
messages prefix
- terminate test on failure, don't wait for timeout
---
automation/gitlab-ci/test.yaml | 8 +-
automation/scripts/qemu-driverdomains-x86_64.sh | 130 +++++++++++++++++-
2 files changed, 138 insertions(+)
create mode 100755 automation/scripts/qemu-driverdomains-x86_64.sh
diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
index 1f0b27b2378a..5c4b2dc304b4 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -656,6 +656,14 @@ qemu-alpine-x86_64-gcc:
- *x86-64-test-needs
- alpine-3.18-gcc
+qemu-alpine-driverdomains-x86_64-gcc:
+ extends: .qemu-x86-64
+ script:
+ - ./automation/scripts/qemu-driverdomains-x86_64.sh 2>&1 | tee ${LOGFILE}
+ needs:
+ - *x86-64-test-needs
+ - alpine-3.18-gcc
+
qemu-smoke-x86-64-gcc:
extends: .qemu-smoke-x86-64
script:
diff --git a/automation/scripts/qemu-driverdomains-x86_64.sh b/automation/scripts/qemu-driverdomains-x86_64.sh
new file mode 100755
index 000000000000..a8e2ceb33527
--- /dev/null
+++ b/automation/scripts/qemu-driverdomains-x86_64.sh
@@ -0,0 +1,130 @@
+#!/bin/bash
+
+set -ex -o pipefail
+
+dom0_rootfs_extra_comp=()
+dom0_rootfs_extra_uncomp=()
+
+cd binaries
+
+# DomU rootfs
+
+mkdir -p rootfs
+cd rootfs
+mkdir -p etc/local.d
+passed="ping test passed"
+failed="TEST FAILED"
+cat > etc/local.d/xen.start << EOF
+#!/bin/bash
+
+set -x
+
+if grep -q test=backend /proc/cmdline; then
+ brctl addbr xenbr0
+ ip link set xenbr0 up
+ ip addr add 192.168.0.1/24 dev xenbr0
+ bash /etc/init.d/xendriverdomain start
+ # log backend-related logs to the console
+ tail -F /var/log/xen/xldevd.log /var/log/xen/xen-hotplug.log >>/dev/console 2>/dev/null &
+else
+ ip link set eth0 up
+ ip addr add 192.168.0.2/24 dev eth0
+ timeout=6 # 6*10s
+ until ping -c 10 192.168.0.1; do
+ sleep 1
+ if [ \$timeout -le 0 ]; then
+ echo "${failed}"
+ exit 1
+ fi
+ ((timeout--))
+ done
+ echo "${passed}"
+fi
+EOF
+chmod +x etc/local.d/xen.start
+zcat ../rootfs.cpio.gz | cpio -imd
+zcat ../xen-tools.cpio.gz | cpio -imd
+mkfs.ext4 -d . ../domU-rootfs.img 1024M
+cd ..
+rm -rf rootfs
+
+# Dom0 rootfs
+mkdir -p rootfs
+cd rootfs
+zcat ../rootfs.cpio.gz | cpio -imd
+zcat ../xen-tools.cpio.gz | cpio -imd
+mkdir -p root etc/local.d
+cat > root/backend.cfg << EOF
+name="backend"
+memory=512
+vcpus=1
+kernel="/root/bzImage"
+extra="console=hvc0 root=/dev/xvda net.ifnames=0 test=backend"
+disk=[ '/root/domU-rootfs-backend.img,raw,xvda,rw' ]
+EOF
+cat > root/frontend.cfg << EOF
+name="frontend"
+memory=512
+vcpus=1
+kernel="/root/bzImage"
+extra="console=hvc0 root=/dev/xvda net.ifnames=0 test=frontend"
+disk=[ '/root/domU-rootfs-frontend.img,raw,xvda,rw' ]
+vif=[ 'bridge=xenbr0,backend=backend' ]
+EOF
+
+cat > etc/local.d/xen.start << EOF
+#!/bin/bash
+
+set -x
+
+bash /etc/init.d/xencommons start
+
+xl list
+
+tail -F /var/log/xen/console/guest-backend.log 2>/dev/null | sed -e "s/^/(backend) /" >>/dev/console &
+tail -F /var/log/xen/console/guest-frontend.log 2>/dev/null | sed -e "s/^/(frontend) /" >>/dev/console &
+xl -vvv create /root/backend.cfg
+xl -vvv create /root/frontend.cfg
+EOF
+chmod +x etc/local.d/xen.start
+
+cp ../domU-rootfs.img ./root/domU-rootfs-backend.img
+cp ../domU-rootfs.img ./root/domU-rootfs-frontend.img
+cp ../bzImage ./root/
+mkdir -p etc/default
+echo 'XENCONSOLED_TRACE=all' >> etc/default/xencommons
+mkdir -p var/log/xen/console
+mkfs.ext4 -d . ../dom0-rootfs.img 2048M
+cd ..
+rm -rf rootfs
+
+cd ..
+
+cat >> binaries/pxelinux.0 << EOF
+#!ipxe
+
+kernel xen console=com1 console_timestamps=boot
+module bzImage console=hvc0 root=/dev/sda net.ifnames=0
+boot
+EOF
+
+# Run the test
+rm -f smoke.serial
+export TEST_CMD="qemu-system-x86_64 \
+ -cpu qemu64,+svm \
+ -m 2G -smp 2 \
+ -monitor none -serial stdio \
+ -nographic \
+ -device virtio-net-pci,netdev=n0 \
+ -netdev user,id=n0,tftp=binaries,bootfile=/pxelinux.0 \
+ -drive file=binaries/dom0-rootfs.img,format=raw"
+
+export TEST_LOG="smoke.serial"
+export BOOT_MSG="Latest ChangeSet: "
+export LOG_MSG="Domain-0"
+# exit early on test failure too, check if it was success below
+export PASSED="$passed|$failed"
+
+./automation/scripts/console.exp | sed 's/\r\+$//'
+
+grep "$passed" smoke.serial
--
git-series 0.9.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH v2 2/3] CI: Add configure --enable-systemd for full build
2025-08-08 14:32 [PATCH v2 0/3] Add driver domains test Marek Marczykowski-Górecki
2025-08-08 14:32 ` [PATCH v2 1/3] CI: Add driver domains tests Marek Marczykowski-Górecki
@ 2025-08-08 14:32 ` Marek Marczykowski-Górecki
2025-08-08 17:03 ` dmkhn
2025-08-08 14:32 ` [PATCH v2 3/3] CI: Run driver domains test on Debian too Marek Marczykowski-Górecki
2 siblings, 1 reply; 7+ messages in thread
From: Marek Marczykowski-Górecki @ 2025-08-08 14:32 UTC (permalink / raw)
To: xen-devel
Cc: Marek Marczykowski-Górecki, Doug Goldstein,
Stefano Stabellini
This doesn't exclude sysvinit scripts, but allows testing systemd too.
Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
--
New in v2.
Requires containers rebuild
---
automation/build/debian/12-x86_64.dockerfile | 1 +
automation/scripts/build | 3 +++
2 files changed, 4 insertions(+)
diff --git a/automation/build/debian/12-x86_64.dockerfile b/automation/build/debian/12-x86_64.dockerfile
index e26a19079e38..3a53d92ddf6d 100644
--- a/automation/build/debian/12-x86_64.dockerfile
+++ b/automation/build/debian/12-x86_64.dockerfile
@@ -24,6 +24,7 @@ RUN <<EOF
git-core
pkg-config
wget
+ systemd
# libxenguest dombuilder
libbz2-dev
liblzma-dev
diff --git a/automation/scripts/build b/automation/scripts/build
index 0e7494ff6d87..4ad42889c78c 100755
--- a/automation/scripts/build
+++ b/automation/scripts/build
@@ -69,6 +69,9 @@ else
# Full build. Figure out our ./configure options
cfgargs=("--prefix=/usr")
cfgargs+=("--enable-docs")
+ if pkg-config systemd; then
+ cfgargs+=("--enable-systemd")
+ fi
# booleans for which compiler is in use
cc_is_gcc="$($cc --version | grep -q gcc && echo "y" || :)"
--
git-series 0.9.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH v2 3/3] CI: Run driver domains test on Debian too
2025-08-08 14:32 [PATCH v2 0/3] Add driver domains test Marek Marczykowski-Górecki
2025-08-08 14:32 ` [PATCH v2 1/3] CI: Add driver domains tests Marek Marczykowski-Górecki
2025-08-08 14:32 ` [PATCH v2 2/3] CI: Add configure --enable-systemd for full build Marek Marczykowski-Górecki
@ 2025-08-08 14:32 ` Marek Marczykowski-Górecki
2025-08-08 17:30 ` dmkhn
2 siblings, 1 reply; 7+ messages in thread
From: Marek Marczykowski-Górecki @ 2025-08-08 14:32 UTC (permalink / raw)
To: xen-devel
Cc: Marek Marczykowski-Górecki, Doug Goldstein,
Stefano Stabellini
The recent failure affected only glibc-based systems, so do the test on
Debian too.
Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
Changes in v2:
- use systemd in Debian
I once got the following timeout:
(backend) ==> /var/log/xen/xldevd.log <==
(backend) libxl: error: libxl_aoutils.c:539:async_exec_timeout: killing execution of /etc/xen/scripts/vif-bridge online because of timeout
https://gitlab.com/xen-project/people/marmarek/xen/-/jobs/10961394681
(docker-bobcat runner)
Could be related to having systemd in domU (and being on QEMU TCG, not
even KVM). I never hit this case on Alpine nor Debian with OpenRC. If
that will repeat, may need some adjustments - more CPUs in QEMU? limit
to more powerful runners? setup KVM on the runners?
---
automation/gitlab-ci/test.yaml | 19 ++++++++++++++++++-
automation/scripts/qemu-driverdomains-x86_64.sh | 18 +++++++++++++++--
2 files changed, 35 insertions(+), 2 deletions(-)
diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
index 5c4b2dc304b4..a5ae03b0eee9 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -30,6 +30,17 @@
job: microcode-x86
ref: master
+.debian-x86-64-test-needs: &debian-x86-64-test-needs
+ - project: xen-project/hardware/test-artifacts
+ job: linux-6.6.56-x86_64
+ ref: master
+ - project: xen-project/hardware/test-artifacts
+ job: debian-12-x86_64-rootfs
+ ref: master
+ - project: xen-project/hardware/test-artifacts
+ job: microcode-x86
+ ref: master
+
.qemu-arm64:
extends: .test-jobs-common
variables:
@@ -664,6 +675,14 @@ qemu-alpine-driverdomains-x86_64-gcc:
- *x86-64-test-needs
- alpine-3.18-gcc
+qemu-debian-12-driverdomains-x86_64-gcc:
+ extends: .qemu-x86-64
+ script:
+ - ./automation/scripts/qemu-driverdomains-x86_64.sh 2>&1 | tee ${LOGFILE}
+ needs:
+ - *debian-x86-64-test-needs
+ - debian-12-x86_64-gcc-debug
+
qemu-smoke-x86-64-gcc:
extends: .qemu-smoke-x86-64
script:
diff --git a/automation/scripts/qemu-driverdomains-x86_64.sh b/automation/scripts/qemu-driverdomains-x86_64.sh
index a8e2ceb33527..e5765ba5dbd6 100755
--- a/automation/scripts/qemu-driverdomains-x86_64.sh
+++ b/automation/scripts/qemu-driverdomains-x86_64.sh
@@ -23,7 +23,11 @@ if grep -q test=backend /proc/cmdline; then
brctl addbr xenbr0
ip link set xenbr0 up
ip addr add 192.168.0.1/24 dev xenbr0
- bash /etc/init.d/xendriverdomain start
+ if [ -d /run/systemd ]; then
+ systemctl start xendriverdomain
+ else
+ bash /etc/init.d/xendriverdomain start
+ fi
# log backend-related logs to the console
tail -F /var/log/xen/xldevd.log /var/log/xen/xen-hotplug.log >>/dev/console 2>/dev/null &
else
@@ -77,7 +81,11 @@ cat > etc/local.d/xen.start << EOF
set -x
-bash /etc/init.d/xencommons start
+if [ -d /run/systemd ]; then
+ systemctl start xen-init-dom0.service
+else
+ bash /etc/init.d/xencommons start
+fi
xl list
@@ -94,6 +102,12 @@ cp ../bzImage ./root/
mkdir -p etc/default
echo 'XENCONSOLED_TRACE=all' >> etc/default/xencommons
mkdir -p var/log/xen/console
+if [ -e etc/systemd/system.conf ]; then
+ chroot . systemctl enable proc-xen.mount \
+ xenstored.service \
+ xenconsoled.service \
+ xen-init-dom0.service
+fi
mkfs.ext4 -d . ../dom0-rootfs.img 2048M
cd ..
rm -rf rootfs
--
git-series 0.9.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH v2 1/3] CI: Add driver domains tests
2025-08-08 14:32 ` [PATCH v2 1/3] CI: Add driver domains tests Marek Marczykowski-Górecki
@ 2025-08-08 17:02 ` dmkhn
0 siblings, 0 replies; 7+ messages in thread
From: dmkhn @ 2025-08-08 17:02 UTC (permalink / raw)
To: Marek Marczykowski-Górecki
Cc: xen-devel, Doug Goldstein, Stefano Stabellini
On Fri, Aug 08, 2025 at 04:32:41PM +0200, Marek Marczykowski-Górecki wrote:
> Setup a simple two domU system. One with network backend, running
> xendriverdomain service, and one with frontend, trying to ping the
> backend.
>
> Contrary to other similar tests, use disk image instead of initrd, to
> allow bigger rootfs without adding more RAM (for both dom0 and domU).
> But keep using pxelinux as a bootloader as it's easier to setup than
> installing grub on the disk. Theoretically, it could be started via direct
> kernel boot in QEMU, but pxelinux is slightly closer to real-world
> deployment.
>
> Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Reviewed-by: Denis Mukhin <dmukhin@ford.com>
> ---
> Changes in v2:
> - use heredoc
> - limit ping loop iterations
> - use full "backend" / "frontend" in disk image names
> - print domU consoles directly to /dev/console, to avoid systemd-added
> messages prefix
> - terminate test on failure, don't wait for timeout
> ---
> automation/gitlab-ci/test.yaml | 8 +-
> automation/scripts/qemu-driverdomains-x86_64.sh | 130 +++++++++++++++++-
> 2 files changed, 138 insertions(+)
> create mode 100755 automation/scripts/qemu-driverdomains-x86_64.sh
>
> diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
> index 1f0b27b2378a..5c4b2dc304b4 100644
> --- a/automation/gitlab-ci/test.yaml
> +++ b/automation/gitlab-ci/test.yaml
> @@ -656,6 +656,14 @@ qemu-alpine-x86_64-gcc:
> - *x86-64-test-needs
> - alpine-3.18-gcc
>
> +qemu-alpine-driverdomains-x86_64-gcc:
> + extends: .qemu-x86-64
> + script:
> + - ./automation/scripts/qemu-driverdomains-x86_64.sh 2>&1 | tee ${LOGFILE}
> + needs:
> + - *x86-64-test-needs
> + - alpine-3.18-gcc
> +
> qemu-smoke-x86-64-gcc:
> extends: .qemu-smoke-x86-64
> script:
> diff --git a/automation/scripts/qemu-driverdomains-x86_64.sh b/automation/scripts/qemu-driverdomains-x86_64.sh
> new file mode 100755
> index 000000000000..a8e2ceb33527
> --- /dev/null
> +++ b/automation/scripts/qemu-driverdomains-x86_64.sh
> @@ -0,0 +1,130 @@
> +#!/bin/bash
> +
> +set -ex -o pipefail
> +
> +dom0_rootfs_extra_comp=()
> +dom0_rootfs_extra_uncomp=()
> +
> +cd binaries
> +
> +# DomU rootfs
> +
> +mkdir -p rootfs
> +cd rootfs
> +mkdir -p etc/local.d
> +passed="ping test passed"
> +failed="TEST FAILED"
> +cat > etc/local.d/xen.start << EOF
> +#!/bin/bash
> +
> +set -x
> +
> +if grep -q test=backend /proc/cmdline; then
> + brctl addbr xenbr0
> + ip link set xenbr0 up
> + ip addr add 192.168.0.1/24 dev xenbr0
> + bash /etc/init.d/xendriverdomain start
> + # log backend-related logs to the console
> + tail -F /var/log/xen/xldevd.log /var/log/xen/xen-hotplug.log >>/dev/console 2>/dev/null &
> +else
> + ip link set eth0 up
> + ip addr add 192.168.0.2/24 dev eth0
> + timeout=6 # 6*10s
> + until ping -c 10 192.168.0.1; do
> + sleep 1
> + if [ \$timeout -le 0 ]; then
> + echo "${failed}"
> + exit 1
> + fi
> + ((timeout--))
> + done
> + echo "${passed}"
> +fi
> +EOF
> +chmod +x etc/local.d/xen.start
> +zcat ../rootfs.cpio.gz | cpio -imd
> +zcat ../xen-tools.cpio.gz | cpio -imd
> +mkfs.ext4 -d . ../domU-rootfs.img 1024M
> +cd ..
> +rm -rf rootfs
> +
> +# Dom0 rootfs
> +mkdir -p rootfs
> +cd rootfs
> +zcat ../rootfs.cpio.gz | cpio -imd
> +zcat ../xen-tools.cpio.gz | cpio -imd
> +mkdir -p root etc/local.d
> +cat > root/backend.cfg << EOF
> +name="backend"
> +memory=512
> +vcpus=1
> +kernel="/root/bzImage"
> +extra="console=hvc0 root=/dev/xvda net.ifnames=0 test=backend"
> +disk=[ '/root/domU-rootfs-backend.img,raw,xvda,rw' ]
> +EOF
> +cat > root/frontend.cfg << EOF
> +name="frontend"
> +memory=512
> +vcpus=1
> +kernel="/root/bzImage"
> +extra="console=hvc0 root=/dev/xvda net.ifnames=0 test=frontend"
> +disk=[ '/root/domU-rootfs-frontend.img,raw,xvda,rw' ]
> +vif=[ 'bridge=xenbr0,backend=backend' ]
> +EOF
> +
> +cat > etc/local.d/xen.start << EOF
> +#!/bin/bash
> +
> +set -x
> +
> +bash /etc/init.d/xencommons start
> +
> +xl list
> +
> +tail -F /var/log/xen/console/guest-backend.log 2>/dev/null | sed -e "s/^/(backend) /" >>/dev/console &
> +tail -F /var/log/xen/console/guest-frontend.log 2>/dev/null | sed -e "s/^/(frontend) /" >>/dev/console &
> +xl -vvv create /root/backend.cfg
> +xl -vvv create /root/frontend.cfg
> +EOF
> +chmod +x etc/local.d/xen.start
> +
> +cp ../domU-rootfs.img ./root/domU-rootfs-backend.img
> +cp ../domU-rootfs.img ./root/domU-rootfs-frontend.img
> +cp ../bzImage ./root/
> +mkdir -p etc/default
> +echo 'XENCONSOLED_TRACE=all' >> etc/default/xencommons
> +mkdir -p var/log/xen/console
> +mkfs.ext4 -d . ../dom0-rootfs.img 2048M
> +cd ..
> +rm -rf rootfs
> +
> +cd ..
> +
> +cat >> binaries/pxelinux.0 << EOF
> +#!ipxe
> +
> +kernel xen console=com1 console_timestamps=boot
> +module bzImage console=hvc0 root=/dev/sda net.ifnames=0
> +boot
> +EOF
> +
> +# Run the test
> +rm -f smoke.serial
> +export TEST_CMD="qemu-system-x86_64 \
> + -cpu qemu64,+svm \
> + -m 2G -smp 2 \
> + -monitor none -serial stdio \
> + -nographic \
> + -device virtio-net-pci,netdev=n0 \
> + -netdev user,id=n0,tftp=binaries,bootfile=/pxelinux.0 \
> + -drive file=binaries/dom0-rootfs.img,format=raw"
> +
> +export TEST_LOG="smoke.serial"
> +export BOOT_MSG="Latest ChangeSet: "
> +export LOG_MSG="Domain-0"
> +# exit early on test failure too, check if it was success below
> +export PASSED="$passed|$failed"
> +
> +./automation/scripts/console.exp | sed 's/\r\+$//'
> +
> +grep "$passed" smoke.serial
> --
> git-series 0.9.1
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v2 2/3] CI: Add configure --enable-systemd for full build
2025-08-08 14:32 ` [PATCH v2 2/3] CI: Add configure --enable-systemd for full build Marek Marczykowski-Górecki
@ 2025-08-08 17:03 ` dmkhn
0 siblings, 0 replies; 7+ messages in thread
From: dmkhn @ 2025-08-08 17:03 UTC (permalink / raw)
To: Marek Marczykowski-Górecki
Cc: xen-devel, Doug Goldstein, Stefano Stabellini
On Fri, Aug 08, 2025 at 04:32:42PM +0200, Marek Marczykowski-Górecki wrote:
> This doesn't exclude sysvinit scripts, but allows testing systemd too.
>
> Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Reviewed-by: Denis Mukhin <dmukhin@ford.com>
> --
> New in v2.
>
> Requires containers rebuild
> ---
> automation/build/debian/12-x86_64.dockerfile | 1 +
> automation/scripts/build | 3 +++
> 2 files changed, 4 insertions(+)
>
> diff --git a/automation/build/debian/12-x86_64.dockerfile b/automation/build/debian/12-x86_64.dockerfile
> index e26a19079e38..3a53d92ddf6d 100644
> --- a/automation/build/debian/12-x86_64.dockerfile
> +++ b/automation/build/debian/12-x86_64.dockerfile
> @@ -24,6 +24,7 @@ RUN <<EOF
> git-core
> pkg-config
> wget
> + systemd
> # libxenguest dombuilder
> libbz2-dev
> liblzma-dev
> diff --git a/automation/scripts/build b/automation/scripts/build
> index 0e7494ff6d87..4ad42889c78c 100755
> --- a/automation/scripts/build
> +++ b/automation/scripts/build
> @@ -69,6 +69,9 @@ else
> # Full build. Figure out our ./configure options
> cfgargs=("--prefix=/usr")
> cfgargs+=("--enable-docs")
> + if pkg-config systemd; then
> + cfgargs+=("--enable-systemd")
> + fi
>
> # booleans for which compiler is in use
> cc_is_gcc="$($cc --version | grep -q gcc && echo "y" || :)"
> --
> git-series 0.9.1
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v2 3/3] CI: Run driver domains test on Debian too
2025-08-08 14:32 ` [PATCH v2 3/3] CI: Run driver domains test on Debian too Marek Marczykowski-Górecki
@ 2025-08-08 17:30 ` dmkhn
0 siblings, 0 replies; 7+ messages in thread
From: dmkhn @ 2025-08-08 17:30 UTC (permalink / raw)
To: Marek Marczykowski-Górecki
Cc: xen-devel, Doug Goldstein, Stefano Stabellini
On Fri, Aug 08, 2025 at 04:32:43PM +0200, Marek Marczykowski-Górecki wrote:
> The recent failure affected only glibc-based systems, so do the test on
> Debian too.
>
> Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Just one tiny comment below, otherwise looks good to me!
With or without addressing it:
Reviewed-by: Denis Mukhin <dmukhin@ford.com>
> ---
> Changes in v2:
> - use systemd in Debian
>
> I once got the following timeout:
>
> (backend) ==> /var/log/xen/xldevd.log <==
> (backend) libxl: error: libxl_aoutils.c:539:async_exec_timeout: killing execution of /etc/xen/scripts/vif-bridge online because of timeout
>
> https://gitlab.com/xen-project/people/marmarek/xen/-/jobs/10961394681
> (docker-bobcat runner)
>
> Could be related to having systemd in domU (and being on QEMU TCG, not
> even KVM). I never hit this case on Alpine nor Debian with OpenRC. If
> that will repeat, may need some adjustments - more CPUs in QEMU? limit
> to more powerful runners? setup KVM on the runners?
> ---
> automation/gitlab-ci/test.yaml | 19 ++++++++++++++++++-
> automation/scripts/qemu-driverdomains-x86_64.sh | 18 +++++++++++++++--
> 2 files changed, 35 insertions(+), 2 deletions(-)
>
> diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
> index 5c4b2dc304b4..a5ae03b0eee9 100644
> --- a/automation/gitlab-ci/test.yaml
> +++ b/automation/gitlab-ci/test.yaml
> @@ -30,6 +30,17 @@
> job: microcode-x86
> ref: master
>
> +.debian-x86-64-test-needs: &debian-x86-64-test-needs
> + - project: xen-project/hardware/test-artifacts
> + job: linux-6.6.56-x86_64
> + ref: master
> + - project: xen-project/hardware/test-artifacts
> + job: debian-12-x86_64-rootfs
> + ref: master
> + - project: xen-project/hardware/test-artifacts
> + job: microcode-x86
> + ref: master
> +
> .qemu-arm64:
> extends: .test-jobs-common
> variables:
> @@ -664,6 +675,14 @@ qemu-alpine-driverdomains-x86_64-gcc:
> - *x86-64-test-needs
> - alpine-3.18-gcc
>
> +qemu-debian-12-driverdomains-x86_64-gcc:
> + extends: .qemu-x86-64
> + script:
> + - ./automation/scripts/qemu-driverdomains-x86_64.sh 2>&1 | tee ${LOGFILE}
> + needs:
> + - *debian-x86-64-test-needs
> + - debian-12-x86_64-gcc-debug
> +
> qemu-smoke-x86-64-gcc:
> extends: .qemu-smoke-x86-64
> script:
> diff --git a/automation/scripts/qemu-driverdomains-x86_64.sh b/automation/scripts/qemu-driverdomains-x86_64.sh
> index a8e2ceb33527..e5765ba5dbd6 100755
> --- a/automation/scripts/qemu-driverdomains-x86_64.sh
> +++ b/automation/scripts/qemu-driverdomains-x86_64.sh
> @@ -23,7 +23,11 @@ if grep -q test=backend /proc/cmdline; then
> brctl addbr xenbr0
> ip link set xenbr0 up
> ip addr add 192.168.0.1/24 dev xenbr0
> - bash /etc/init.d/xendriverdomain start
> + if [ -d /run/systemd ]; then
> + systemctl start xendriverdomain
> + else
> + bash /etc/init.d/xendriverdomain start
> + fi
> # log backend-related logs to the console
> tail -F /var/log/xen/xldevd.log /var/log/xen/xen-hotplug.log >>/dev/console 2>/dev/null &
> else
> @@ -77,7 +81,11 @@ cat > etc/local.d/xen.start << EOF
>
> set -x
>
> -bash /etc/init.d/xencommons start
> +if [ -d /run/systemd ]; then
> + systemctl start xen-init-dom0.service
> +else
> + bash /etc/init.d/xencommons start
> +fi
>
> xl list
>
> @@ -94,6 +102,12 @@ cp ../bzImage ./root/
> mkdir -p etc/default
> echo 'XENCONSOLED_TRACE=all' >> etc/default/xencommons
> mkdir -p var/log/xen/console
> +if [ -e etc/systemd/system.conf ]; then
> + chroot . systemctl enable proc-xen.mount \
> + xenstored.service \
> + xenconsoled.service \
> + xen-init-dom0.service
I would keep the list of files sorted; that may help with future merges, if
any.
> +fi
> mkfs.ext4 -d . ../dom0-rootfs.img 2048M
> cd ..
> rm -rf rootfs
> --
> git-series 0.9.1
>
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2025-08-08 17:31 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-08-08 14:32 [PATCH v2 0/3] Add driver domains test Marek Marczykowski-Górecki
2025-08-08 14:32 ` [PATCH v2 1/3] CI: Add driver domains tests Marek Marczykowski-Górecki
2025-08-08 17:02 ` dmkhn
2025-08-08 14:32 ` [PATCH v2 2/3] CI: Add configure --enable-systemd for full build Marek Marczykowski-Górecki
2025-08-08 17:03 ` dmkhn
2025-08-08 14:32 ` [PATCH v2 3/3] CI: Run driver domains test on Debian too Marek Marczykowski-Górecki
2025-08-08 17:30 ` dmkhn
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.