qemu-system-aarch64: ../target/arm/helper.c:6757: sve_vqm1_for_el_sm: Assertion `sm' failed.
Host environment
-
Operating system: openSUSE Tumbleweed 20231103
-
OS/kernel version: Linux nibbler 6.5.6-1-default #1 SMP PREEMPT_DYNAMIC Fri Oct 6 11:20:48 UTC 2023 (c97c2df) x86_64 x86_64 x86_64 GNU/Linux
-
Architecture: x86_64
-
QEMU flavor: qemu-system-aarch64
-
QEMU version: 8.1.2
-
QEMU command line:
/usr/bin/qemu-system-aarch64 -name guest=opensusetumbleweed-aarch64,debug-threads=on -blockdev $'{"driver":"file","filename":"/usr/share/qemu/aavmf-aarch64-code.bin","node-name":"libvirt-pflash0-storage","auto-read-only":true,"discard":"unmap"}' -blockdev $'{"node-name":"libvirt-pflash0-format","read-only":true,"driver":"raw","file":"libvirt-pflash0-storage"}' -blockdev $'{"driver":"file","filename":"/home/stefan/.config/libvirt/qemu/nvram/opensusetumbleweed-aarch64_VARS.fd","node-name":"libvirt-pflash1-storage","auto-read-only":true,"discard":"unmap"}' -blockdev $'{"node-name":"libvirt-pflash1-format","read-only":false,"driver":"raw","file":"libvirt-pflash1-storage"}' -machine virt-8.1,usb=off,gic-version=3,dump-guest-core=off,memory-backend=mach-virt.ram,pflash0=libvirt-pflash0-format,pflash1=libvirt-pflash1-format,acpi=on -accel tcg -cpu max,sve=off -m size=8388608k -object $'{"qom-type":"memory-backend-memfd","id":"mach-virt.ram","share":true,"x-use-canonical-path-for-ramblock-id":false,"size":8589934592}' -overcommit mem-lock=off -smp 4,sockets=4,cores=1,threads=1 -uuid 45e0bbde-b2c8-4c70-807f-9123a53153a5 -no-user-config -nodefaults -rtc base=utc -no-shutdown -boot strict=on -device $'{"driver":"pcie-root-port","port":8,"chassis":1,"id":"pci.1","bus":"pcie.0","multifunction":true,"addr":"0x1"}' -device $'{"driver":"pcie-root-port","port":9,"chassis":2,"id":"pci.2","bus":"pcie.0","addr":"0x1.0x1"}' -device $'{"driver":"pcie-root-port","port":10,"chassis":3,"id":"pci.3","bus":"pcie.0","addr":"0x1.0x2"}' -device $'{"driver":"pcie-root-port","port":11,"chassis":4,"id":"pci.4","bus":"pcie.0","addr":"0x1.0x3"}' -device $'{"driver":"pcie-root-port","port":12,"chassis":5,"id":"pci.5","bus":"pcie.0","addr":"0x1.0x4"}' -device $'{"driver":"pcie-root-port","port":13,"chassis":6,"id":"pci.6","bus":"pcie.0","addr":"0x1.0x5"}' -device $'{"driver":"pcie-root-port","port":14,"chassis":7,"id":"pci.7","bus":"pcie.0","addr":"0x1.0x6"}' -device $'{"driver":"pcie-root-port","port":15,"chassis":8,"id":"pci.8","bus":"pcie.0","addr":"0x1.0x7"}' -device $'{"driver":"pcie-root-port","port":16,"chassis":9,"id":"pci.9","bus":"pcie.0","multifunction":true,"addr":"0x2"}' -device $'{"driver":"pcie-root-port","port":17,"chassis":10,"id":"pci.10","bus":"pcie.0","addr":"0x2.0x1"}' -device $'{"driver":"pcie-root-port","port":18,"chassis":11,"id":"pci.11","bus":"pcie.0","addr":"0x2.0x2"}' -device $'{"driver":"pcie-root-port","port":19,"chassis":12,"id":"pci.12","bus":"pcie.0","addr":"0x2.0x3"}' -device $'{"driver":"pcie-root-port","port":20,"chassis":13,"id":"pci.13","bus":"pcie.0","addr":"0x2.0x4"}' -device $'{"driver":"pcie-root-port","port":21,"chassis":14,"id":"pci.14","bus":"pcie.0","addr":"0x2.0x5"}' -device $'{"driver":"pcie-root-port","port":22,"chassis":15,"id":"pci.15","bus":"pcie.0","addr":"0x2.0x6"}' -device $'{"driver":"pcie-pci-bridge","id":"pci.16","bus":"pci.1","addr":"0x0"}' -device $'{"driver":"qemu-xhci","p2":15,"p3":15,"id":"usb","bus":"pci.3","addr":"0x0"}' -device $'{"driver":"virtio-scsi-pci","id":"scsi0","bus":"pci.4","addr":"0x0"}' -device $'{"driver":"virtio-serial-pci","id":"virtio-serial0","bus":"pci.5","addr":"0x0"}' -blockdev $'{"driver":"file","filename":"/home/stefan/.local/share/libvirt/images/opensusetumbleweed-aarch64.qcow2","node-name":"libvirt-2-storage","auto-read-only":true,"discard":"unmap"}' -blockdev $'{"node-name":"libvirt-2-format","read-only":false,"discard":"unmap","driver":"qcow2","file":"libvirt-2-storage"}' -device $'{"driver":"virtio-blk-pci","bus":"pci.6","addr":"0x0","drive":"libvirt-2-format","id":"virtio-disk0","bootindex":1}' -blockdev $'{"driver":"file","filename":"/home/stefan/Downloads/openSUSE-Tumbleweed-NET-aarch64-Snapshot20231122-Media.iso","node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' -blockdev $'{"node-name":"libvirt-1-format","read-only":true,"driver":"raw","file":"libvirt-1-storage"}' -device $'{"driver":"scsi-cd","bus":"scsi0.0","channel":0,"scsi-id":0,"lun":0,"device_id":"drive-scsi0-0-0-0","drive":"libvirt-1-format","id":"scsi0-0-0-0","bootindex":2}' -chardev pty,id=charserial0 -serial chardev:charserial0 -chardev spicevmc,id=charchannel1,name=vdagent -device $'{"driver":"virtserialport","bus":"virtio-serial0.0","nr":2,"chardev":"charchannel1","id":"channel1","name":"com.redhat.spice.0"}' -device $'{"driver":"usb-tablet","id":"input0","bus":"usb.0","port":"1"}' -device $'{"driver":"usb-kbd","id":"input1","bus":"usb.0","port":"2"}' -audiodev $'{"id":"audio1","driver":"spice"}' -spice port=0,disable-ticketing=on,image-compression=off,seamless-migration=on -device $'{"driver":"virtio-gpu-pci","id":"video0","max_outputs":1,"bus":"pci.9","addr":"0x0"}' -device $'{"driver":"ich9-intel-hda","id":"sound0","bus":"pci.16","addr":"0x1"}' -device $'{"driver":"hda-duplex","id":"sound0-codec0","bus":"sound0.0","cad":0,"audiodev":"audio1"}' -chardev spicevmc,id=charredir0,name=usbredir -device $'{"driver":"usb-redir","chardev":"charredir0","id":"redir0","bus":"usb.0","port":"3"}' -device $'{"driver":"virtio-balloon-pci","id":"balloon0","bus":"pci.7","addr":"0x0"}' -object $'{"qom-type":"rng-random","id":"objrng0","filename":"/dev/urandom"}' -device $'{"driver":"virtio-rng-pci","rng":"objrng0","id":"rng0","bus":"pci.8","addr":"0x0"}' -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny -msg timestamp=on
The commandline is generated by libvirt.
Emulated/Virtualized environment
- Operating system: openSUSE Tumbleweed 20231122
- OS/kernel version: Linux localhost.localdomain 6.6.2-1-default #1 SMP PREEMPT_DYNAMIC Mon Nov 20 11:22:36 UTC 2023 (263a855) aarch64 aarch64 aarch64 GNU/Linux
- Architecture: aarch64
Description of problem
Qemu crashes when sve is completely disabled for CPU model "max" (-cpu max,sve=off
). Using any CPU model which does not include SVE, or using only e.g. SVE128 (-cpu max,sve128=on
) works fine.
#0 0x00007f94b8291dec in __pthread_kill_implementation () at /lib64/libc.so.6
#1 0x00007f94b823f0c6 in raise () at /lib64/libc.so.6
#2 0x00007f94b82268d7 in abort () at /lib64/libc.so.6
#3 0x00007f94b82267eb in _nl_load_domain.cold () at /lib64/libc.so.6
#4 0x00007f94b8237016 in () at /lib64/libc.so.6
#5 0x000055d6794aa698 in sve_vqm1_for_el_sm (env=env@entry=0x55d67c6ff9b0, el=el@entry=1, sm=false) at ../target/arm/helper.c:6757
#6 0x000055d6794afc29 in sve_vqm1_for_el (el=1, env=0x55d67c6ff9b0) at ../target/arm/helper.c:6763
#7 smcr_write (env=0x55d67c6ff9b0, ri=0x55d67c78f600, value=<optimized out>) at ../target/arm/helper.c:6887
#8 0x00007f9469bad101 in code_gen_buffer ()
#9 0x000055d67977dc19 in cpu_tb_exec (cpu=cpu@entry=0x55d67c6fd1f0, itb=<optimized out>, tb_exit=tb_exit@entry=0x7f94acdcc4c4) at ../accel/tcg/cpu-exec.c:457
#10 0x000055d67977e59f in cpu_loop_exec_tb (tb_exit=0x7f94acdcc4c4, last_tb=<synthetic pointer>, pc=<optimized out>, tb=<optimized out>, cpu=<optimized out>) at ../accel/tcg/cpu-exec.c:919
#11 cpu_exec_loop (cpu=cpu@entry=0x55d67c6fd1f0, sc=sc@entry=0x7f94acdcc570) at ../accel/tcg/cpu-exec.c:1040
#12 0x000055d67977ee7d in cpu_exec_setjmp (cpu=0x55d67c6fd1f0, sc=0x7f94acdcc570) at ../accel/tcg/cpu-exec.c:1057
#13 0x000055d679787c3d in cpu_exec (cpu=0x55d67c6fd1f0) at ../accel/tcg/cpu-exec.c:1083
#14 0x000055d6797a1d52 in tcg_cpus_exec (cpu=0x55d67c6fd1f0) at ../accel/tcg/tcg-accel-ops.c:75
#15 mttcg_cpu_thread_fn (arg=arg@entry=0x55d67c6fd1f0) at ../accel/tcg/tcg-accel-ops-mttcg.c:95
#16 0x000055d679938698 in qemu_thread_start (args=0x55d67c7a1500) at ../util/qemu-thread-posix.c:541
#17 0x00007f94b828ff44 in start_thread () at /lib64/libc.so.6
#18 0x00007f94b8318314 in clone () at /lib64/``libc.so``.6
This happens when the system is booting, i.e. grub has just finished, loaded kernel and initrd, and the kernel has just began to run, i.e. early in the kernel startup.