Skip to content

Commit b993a15

Browse files
committed
ci: use newer qemu-user-static for RVV cross tests
docker/setup-qemu-action@v3.0.0 pulls tonistiigi/binfmt:latest, which pins an older qemu (~6.x/7.x) whose RVV implementation miscompiles the vmulh / vmulhu variants emitted by gcc-14 at vlen=128: the test binary runs forever under qemu while making no forward progress, hitting the 6h GHA job timeout. Local repro with qemu 11 / Ubuntu 24.04's qemu-user-static (8.2.x) passes the same binary in ~30s. Switch to the apt-shipped qemu-user-static so the cross-rvv job picks up a maintained qemu without depending on the pinned docker image. Also log the installed qemu-user-static version for diagnostics, and add a 15 min timeout-minutes on the Testing step so any future qemu hang on vmulh* fails fast instead of burning the 6h job timeout.
1 parent b395957 commit b993a15

1 file changed

Lines changed: 10 additions & 3 deletions

File tree

.github/workflows/cross-rvv.yml

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,15 @@ jobs:
3535
sudo ln -srf $(which clang++-${{ matrix.sys.version }}) /usr/bin/clang++
3636
rm llvm.sh
3737
- name: Setup QEMU
38-
uses: docker/setup-qemu-action@v3.0.0
39-
with:
40-
platforms: riscv64
38+
# Use the qemu-user-static package shipped by Ubuntu 24.04 (qemu 8.2+)
39+
# rather than docker/setup-qemu-action, which pins an older qemu via
40+
# tonistiigi/binfmt and miscompiles RVV vmulh* at vlen=128 (the test
41+
# binary hangs under qemu, with no forward progress, until the GHA
42+
# 6h timeout).
43+
run: |
44+
sudo apt-get -y -qq update
45+
sudo apt-get -y -qq --no-install-suggests --no-install-recommends install qemu-user-static
46+
qemu-riscv64-static --version
4147
- name: Setup Ninja
4248
run: |
4349
sudo apt-get -y -qq install ninja-build
@@ -62,6 +68,7 @@ jobs:
6268
echo "XSIMD_TEST_CPU_ASSUME_SVE=0" >> "$GITHUB_ENV"
6369
echo "XSIMD_TEST_CPU_ASSUME_RVV=1" >> "$GITHUB_ENV"
6470
- name: Testing xsimd
71+
timeout-minutes: 15
6572
run: >
6673
QEMU_CPU="rv64,zba=true,zbb=true,zbs=true,v=true,vlen=${{ matrix.vector_bits }},elen=64,vext_spec=v1.0"
6774
QEMU_LD_PREFIX="/usr/riscv64-linux-gnu"

0 commit comments

Comments
 (0)