]> git.ipfire.org Git - thirdparty/dracut.git/commitdiff
test: don't use `-cpu max` in GH Actions
authorFrantisek Sumsal <frantisek@sumsal.cz>
Fri, 12 Nov 2021 20:43:12 +0000 (21:43 +0100)
committerJóhann B. Guðmundsson <johannbg@gmail.com>
Mon, 15 Nov 2021 11:37:22 +0000 (11:37 +0000)
There appears to be an issue with newer QEMU versions (spotted with Arch
Linux and C9S containers) which causes the respective GH Action to hang
when booting a QEMU VM in combination with the `-cpu max` parameter.

During (a particularly painful) debugging session I once managed to get
some output from such "frozen" machine (using `earlycon` and
`earlyprintk` kernel cmdline options), and in that particular case the
VM died with a trap caused by an invalid opcode.

I couldn't reproduce this locally, only in GH Actions environment with
Arch Linux and C9S containers. Also, so far I haven't found out which
specific CPUID flag causes this, but using the `IvyBridge-v2` feature
set seems to mitigate the issue.

test/run-qemu
tools/test-github.sh

index 3c521a14193385a50796e024da967012bd0340e4..5dc610379e56d7a597afda2546ed2594d25b9986 100755 (executable)
@@ -3,13 +3,14 @@
 # We prefer kvm, kqemu, userspace in that order.
 
 export PATH=/usr/sbin:/usr/bin:/sbin:/bin
+QEMU_CPU="${QEMU_CPU:-max}"
 
-[[ -x /usr/bin/qemu ]] && BIN=/usr/bin/qemu && ARGS=(-cpu max)
+[[ -x /usr/bin/qemu ]] && BIN=/usr/bin/qemu && ARGS=(-cpu "$QEMU_CPU")
 (lsmod | grep -q '^kqemu ') && BIN=/usr/bin/qemu && ARGS=(-kernel-kqemu -cpu host)
 [[ -c /dev/kvm && -x /usr/bin/kvm ]] && BIN=/usr/bin/kvm && ARGS=(-cpu host)
 [[ -c /dev/kvm && -x /usr/bin/qemu-kvm ]] && BIN=/usr/bin/qemu-kvm && ARGS=(-cpu host)
 [[ -c /dev/kvm && -x /usr/libexec/qemu-kvm ]] && BIN=/usr/libexec/qemu-kvm && ARGS=(-cpu host)
-[[ -x /usr/bin/qemu-system-$(uname -m) ]] && BIN=/usr/bin/qemu-system-$(uname -m) && ARGS=(-cpu max)
+[[ -x /usr/bin/qemu-system-$(uname -m) ]] && BIN=/usr/bin/qemu-system-$(uname -m) && ARGS=(-cpu "$QEMU_CPU")
 [[ -c /dev/kvm && -x /usr/bin/qemu-system-$(uname -m) ]] && BIN=/usr/bin/qemu-system-$(uname -m) && ARGS=(-enable-kvm -cpu host)
 
 [[ $BIN ]] || {
index eab59dcca1a4754325c6ac7382339f6c67837fdf..1d61b8e367846997b7d4c2bd0384dafb1d35b163 100755 (executable)
@@ -41,6 +41,7 @@ else
             cd /lib/modules
             ls -1 | tail -1
         )" \
+        QEMU_CPU="IvyBridge-v2" \
         DRACUT_NO_XATTR=1 \
         TEST_RUN_ID="$RUN_ID" \
         ${TESTS:+TESTS="$TESTS"} \