Dmitry Osipenko <dmitry.osipe...@collabora.com> writes: > On 4/27/25 14:53, 刘聪 wrote: >> Hi Dmitry, >> >> The virglrender patch can fix the virgl issue, but the native context still >> fails to run on my machine. >> I'm not sure if anyone has successfully run it on an ARM64 machine before. > > Thanks for the testing! > >> When running with Venus, the virtual machine can successfully run vkcube. >> However, when using the native context, a KVM error is triggered. Both my >> guest and host kernels are already updated to version 6.14. >> >> Here are the commands and error messages I encountered: >> >> ``` >> phytium@ubuntu:~/working/virglrenderer$ >> /opt/native-context-v11/bin/qemu-system-aarch64 --machine >> virt,accel=kvm,memory-backend=mem1 -cpu host -smp 4 -m 4G -drive >> file=/home/phytium/working/ubuntu24.04-aarch64-native-context,format=raw,if=virtio >> -bios /usr/share/AAVMF/AAVMF_CODE.ms.fd -netdev user,id=net0 -device >> virtio-net-pci,netdev=net0 -device >> virtio-gpu-gl,hostmem=4G,blob=on,venus=on -object >> memory-backend-memfd,id=mem1,size=4G -display >> sdl,gl=on,show-cursor=on -device usb-ehci,id=usb -device >> usb-mouse,bus=usb.0 -device usb-kbd,bus=usb.0 >> phytium@ubuntu:~/working/virglrenderer$ >> phytium@ubuntu:~/working/virglrenderer$ >> /opt/native-context-v11/bin/qemu-system-aarch64 --machine >> virt,accel=kvm,memory-backend=mem1 -cpu host -smp 4 -m 4G -drive >> file=/home/phytium/working/ubuntu24.04-aarch64-native-context,format=raw,if=virtio >> -bios /usr/share/AAVMF/AAVMF_CODE.ms.fd -netdev user,id=net0 -device >> virtio-net-pci,netdev=net0 -device >> virtio-gpu-gl,hostmem=4G,blob=on,drm_native_context=on -object >> memory-backend-memfd,id=mem1,size=4G -display >> sdl,gl=on,show-cursor=on -device usb-ehci,id=usb -device >> usb-mouse,bus=usb.0 -device usb-kbd,bus=usb.0 >> error: kvm run failed Bad address >> PC=0000e2bcbbf31ab0 X00=0000e2bc9c3ae060 X01=0000e2bc7c02af00 >> X02=0000000000000014 X03=0000e2bc9c3ae000 X04=0000e2bc7c02af14 >> X05=0000e2bc9c3ae074 X06=0000000000000200 X07=0000e2bc7c02a8f8 >> X08=00000000000000de X09=0000000000000200 X10=0000000000001000 >> X11=0000000000000004 X12=0000e2bc7c0000b0 X13=0000000000000001 >> X14=0000000000000020 X15=0000e2bc9e465f93 X16=0000e2bcad6a01f0 >> X17=0000e2bcbbf31a80 X18=0000000000000093 X19=0000000000000060 >> X20=0000000000000074 X21=0000e2bc9e46c5f0 X22=0000e2bc9c3ae000 >> X23=0000000000000074 X24=0000c02241da83b0 X25=0000c02241da85a0 >> X26=0000c02241da85a0 X27=0000000000000014 X28=0000e2bc9e46c5f0 >> X29=0000e2bc9e46c610 X30=0000e2bcac809c38 SP=0000e2bc9e46c510 >> PSTATE=20001000 --C- EL0t >> phytium@ubuntu:~/working/virglrenderer$ uname -a >> Linux ubuntu 6.14.1-061401-generic #202504071048 SMP PREEMPT_DYNAMIC Mon Apr >> 7 11:34:37 UTC 2025 aarch64 aarch64 aarch64 GNU/Linux >> ``` > > Alex Bennée reported the very same problem with KVM on ARM + native ctx > AMD dGPU in the past. You may try to add error messages to > virt/kvm/kvm_main.c of host Linux kernel to find from where KVM error > originates. Sounds like page refcounting may be not working properly > on ARM.
Also what hardware is the machine? The AVA (and most things with the same chipset) have a broken PCI which needs a workaround for unaligned SIMD access: https://github.com/stsquad/linux/tree/testing/altra-tweaks-for-gpu > > +CC: Sean Christopherson -- Alex Bennée Virtualisation Tech Lead @ Linaro