#832

[aarch64][virtio-gpu] KVM_RUN returns EFAULT when running games with Venus

Openadjivasopened 1mo ago

Hi,

Thank you for this amazing project!

I'm seeing a reproducible KVM_RUN failure when running a Steam game through muvm with Venus on an aarch64 host.

My Hardware/software are:

  • Ampere Altra Q80-33 (aarch64)
  • Intel Arc Pro B60 (Battlemage BMG-G21, 24 GiB)
  • Linux 7.2.2
  • libkrun 1.19.0
  • muvm 0.6.0
  • virglrenderer 1.3.0
  • Venus + FEX / steam-asahi project

Basic Vulkan works correctly through Venus (vulkaninfo and vkcube).

However, launching a Steam game under Proton reproducibly causes the VM to stop with:

DEBUG krun_devices::virtio::gpu::virtio_gpu] mapping: host_addr=e47ecbb00000, addr=e47ed7880000, size=2097152
DEBUG krun_devices::virtio::gpu::worker] gpu: process_queue exit
ERROR krun_vmm::linux::vstate] Failure during vcpu run: Bad address (os error 14)
DEBUG krun_vmm] using vcpu exit code: 1
INFO  krun_vmm] Vmm is stopping.

I reproduced the same Bad address (os error 14) failure with multiple Steam games.

This is reproducible with an unmodified upstream libkrun 1.19.0.

I'm happy to provide complete logs or run additional tests if useful.

Activity

2
slp1mo ago

Hi! Most likely this is caused by a bug introduced in the Linux kernel around the 7.0 lifetime. Should be fixed by this https://patchew.org/linux/20260804120529.1730187-1-pbonzini@redhat.com/

Can you check if going back to a 6.19.x kernel or patching your kernel with the series linked above fixes it for you?

DiamondTaco1mo ago

i had a similar issue, on asahi linux nixos with the 7.1.5 kernel, trying to run septabee. i traced back the error to libkrun spitting out this message in the muvm logs, and found this github issue. after applying the patches, it fixed the crash.

ERROR krun_vmm::linux::vstate
Failure during vcpu run: Bad address (os error 14)
 
DEBUG krun_vmm
using vcpu exit code: 1
 
INFO krun_vmm
Vmm is stopping.

i am using a macbook m2 air with nixos-apple-silicon, on nixpkgs unstable. i ran the x86 septabee binary using x86-run.