Skip to content

s390 host: helper_st16_mmu: Assertion `(get_memop(oi) & MO_SIZE) == MO_128' failed

If you run 'make check-avocado' on an s390 host, then among various failed tests is this one:

 (1/1) ./build/all/tests/avocado/boot_linux_console.py:BootLinuxConsole.test_aarch64_xlnx_versal_virt: INTERRUPTED: Test interrupted by SIGTERM\nRunner error occurred: Timeout reached\nOriginal status: ERROR\n{'name': '1-./build/all/tests/avocado/boot_linux_console.py:BootLinuxConsole.test_aarch64_xlnx_versal_virt', 'logdir': '/home/linux1/avocado/job-results/job-2023-07-... (90.51 s)

You can run that on its own with this command line:

./build/all/tests/venv/bin/avocado run ./build/all/tests/avocado/boot_linux_console.py:BootLinuxConsole.test_aarch64_xlnx_versal_virt

(adjust to suit the name of your build directory).

Looking at the logs, the QEMU process actually segfaulted, with Avocado being its usual unhelpful self about not reporting that in the summary output. Running the actual QEMU command with a debug build under gdb, we hit an assertion. (you can fish the paths to the files in the avocado cache out of the avocado logfile if they're not the same as mine)

$ gdb --args /home/linux1/qemu/build/aarch64/qemu-system-aarch64 -display none -vga none -serial stdio  -machine xlnx-versal-virt -m 2G -accel tcg -kernel /home/linux1/avocado/data/cache/by_location/86dbba0cf1f2cb724a2a5a3f3b29eb4126f52d45/linux -initrd /home/linux1/avocado/data/cache/by_location/86dbba0cf1f2cb724a2a5a3f3b29eb4126f52d45/initrd.gz
[...]
qemu-system-aarch64: ../../accel/tcg/cputlb.c:3023: helper_st16_mmu: Assertion `(get_memop(oi) & MO_SIZE) == MO_128' failed.

Thread 3 "qemu-system-aar" received signal SIGABRT, Aborted.
[Switching to Thread 0x3ffea6c2900 (LWP 3706381)]
__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
50      ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) bt
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1  0x000003fffa4a40a2 in __GI_abort () at abort.c:79
#2  0x000003fffa4b96ca in __assert_fail_base
    (fmt=0x3fffa5e36a0 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x2aa015a87ac "(get_memop(oi) & MO_SIZE) == MO_128", file=file@entry=0x2aa015a8640 "../../accel/tcg/cputlb.c", line=line@entry=3023, function=function@entry=0x2aa015a8ee2 <__PRETTY_FUNCTION__.34549> "helper_st16_mmu") at assert.c:92
#3  0x000003fffa4b973e in __GI___assert_fail
    (assertion=0x2aa015a87ac "(get_memop(oi) & MO_SIZE) == MO_128", file=0x2aa015a8640 "../../accel/tcg/cputlb.c", line=<optimized out>, function=0x2aa015a8ee2 <__PRETTY_FUNCTION__.34549> "helper_st16_mmu") at assert.c:101
#4  0x000002aa00fa1188 in helper_st16_mmu (env=0x1146, addr=22695936, val=190840832, oi=1677724014, retaddr=4397684481336)
    at ../../accel/tcg/cputlb.c:3023
#5  0x000003ff64000a20 in code_gen_buffer ()
#6  0x000002aa00f7b472 in cpu_tb_exec (cpu=0x3ffea8a5650, itb=0x3ffa4000800, tb_exit=0x3ffea6bdd38) at ../../accel/tcg/cpu-exec.c:457
#7  0x000002aa00f7c518 in cpu_loop_exec_tb (cpu=0x3ffea8a5650, tb=0x3ffa4000800, pc=16711712, last_tb=0x3ffea6bdd48, tb_exit=0x3ffea6bdd38)
    at ../../accel/tcg/cpu-exec.c:891
#8  0x000002aa00f7c96c in cpu_exec_loop (cpu=0x3ffea8a5650, sc=0x3ffea6bded8) at ../../accel/tcg/cpu-exec.c:1012
#9  0x000002aa00f7cadc in cpu_exec_setjmp (cpu=0x3ffea8a5650, sc=0x3ffea6bded8) at ../../accel/tcg/cpu-exec.c:1042
#10 0x000002aa00f7cba8 in cpu_exec (cpu=0x3ffea8a5650) at ../../accel/tcg/cpu-exec.c:1068
#11 0x000002aa00fb6026 in tcg_cpus_exec (cpu=0x3ffea8a5650) at ../../accel/tcg/tcg-accel-ops.c:75
#12 0x000002aa00fb69c0 in mttcg_cpu_thread_fn (arg=0x3ffea8a5650) at ../../accel/tcg/tcg-accel-ops-mttcg.c:95
#13 0x000002aa01275cb8 in qemu_thread_start (args=0x2aa025d2860) at ../../util/qemu-thread-posix.c:541
#14 0x000003fffa687e66 in start_thread (arg=0x3ffea6c2900) at pthread_create.c:477
#15 0x000003fffa57cbe6 in thread_start () at ../sysdeps/unix/sysv/linux/s390/s390-64/clone.S:65
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information