NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

port-amd64/56616: qemu-system-x86_64: NVMM: Mem Assist Failed [gpa=0xfffff000] ; qemu-system-x86_64: NVMM: Failed to execute a VCPU.



>Number:         56616
>Category:       port-amd64
>Synopsis:       qemu-system-x86_64: NVMM: Mem Assist Failed [gpa=0xfffff000] ; qemu-system-x86_64: NVMM: Failed to execute a VCPU.
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    port-amd64-maintainer
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue Jan 11 16:35:00 +0000 2022
>Originator:     mario zio
>Release:        9.2
>Organization:
as hobby
>Environment:
NetBSD localhost 9.2 NetBSD 9.2 (GENERIC) #0: Wed May 12 13:15:55 UTC 2021  mkrepro%mkrepro.NetBSD.org@localhost:/usr/src/sys/arch/amd64/compile/GENERIC amd64
>Description:
I've installed NetBSD 9.2 to try if and how qemu+nvmm worked together. So,I've launched a VM with the commands below :

qemu-system-x86_64 \
-machine type=q35,accel=nvmm \
-smp cpus=1 -m 8G \
-drive if=pflash,format=raw,file=/usr/pkg/share/qemu/edk2-x86_64-code.fd \
-drive file=/mnt/WD2500BMV/impish-cuda-11-4-nvidia-470.img,if=none,id=disk0 \
-device virtio-blk-pci,drive=disk0 \
-netdev user,id=net0,hostfwd=tcp:127.0.0.1:6022-:22 \
-device virtio-net-pci,netdev=net0 \
-object rng-random,id=rng0,filename=/dev/urandom \
-device virtio-rng-pci,rng=rng0 \
-display curses \
-vga qxl \
-spice addr=127.0.0.1,port=5900,ipv4=on,disable-ticketing=on,seamless-migration=on

and I've got this error : 

qemu-system-x86_64: NVMM: Mem Assist Failed [gpa=0xfffff000]
qemu-system-x86_64: NVMM: Failed to execute a VCPU.

I found this bug on the DFLY and then I've tried even with NetBSD and I've also found it even there. Maybe because they have the same issue, because we have almost the same NVMM and Qemu code.

Aaron Li created a bug to track the issue:

https://bugs.dragonflybsd.org/issues/3310

In addition, he figured out a patch to make UEFI boot, but it?s extremely slow, which needs further investigation.
>How-To-Repeat:
simply execute this vm on your hardware :

qemu-system-x86_64 \
-machine type=q35,accel=nvmm \
-smp cpus=1 -m 8G \
-drive if=pflash,format=raw,file=/usr/pkg/share/qemu/edk2-x86_64-code.fd \
-drive file=/mnt/WD2500BMV/impish-cuda-11-4-nvidia-470.img,if=none,id=disk0 \
-device virtio-blk-pci,drive=disk0 \
-netdev user,id=net0,hostfwd=tcp:127.0.0.1:6022-:22 \
-device virtio-net-pci,netdev=net0 \
-object rng-random,id=rng0,filename=/dev/urandom \
-device virtio-rng-pci,rng=rng0 \
-display curses \
-vga qxl \
-spice addr=127.0.0.1,port=5900,ipv4=on,disable-ticketing=on,seamless-migration=on
>Fix:
A temporary workaround is to use -bios /path/to/UEFI_CODE.fd with qemu, and it works. But this way of specifying UEFI firmware is a workaround and doesn?t support persistent UEFI variables and with the patch created NVMM+QEMU is extremely slow and uses 100% CPU. It's even much slower than
TCG (i.e., without -accel nvmm).

For example: for QEMU to boot into the UEFI shell on my desktop, it takes ~12 seconds with TCG, but it takes ~170 seconds with NVMM !



Home | Main Index | Thread Index | Old Index