Stefan Hajnoczi <stefa...@redhat.com> writes: > On Tue, Jul 21, 2020 at 07:14:38AM +0000, Alyssa Ross wrote: >> Hi -- I hope it's okay me reaching out like this. >> >> I've been trying to test out the virtio-vhost-user implementation that's >> been posted to this list a couple of times, but have been unable to get >> it to boot a kernel following the steps listed either on >> <https://wiki.qemu.org/Features/VirtioVhostUser> or >> <https://ndragazis.github.io/dpdk-vhost-vvu-demo.html>. >> >> Specifically, the kernel appears to be unable to write to the >> virtio-vhost-user device's PCI registers. I've included the full panic >> output from the kernel at the end of this message. The panic is >> reproducible with two different kernels I tried (with different configs >> and versions). I tried both versions of the virtio-vhost-user I was >> able to find[1][2], and both exhibited the same behaviour. >> >> Is this a known issue? Am I doing something wrong? > > Hi, > Unfortunately I'm not sure what the issue is. This is an early > virtio-pci register access before a driver for any specific device type > (net, blk, vhost-user, etc) comes into play. > > Did you test the git trees linked below or did you rebase the commits > on top of your own QEMU tree?
I tested the git trees. For your one I had to make a slight modification to delete the memfd syscall wrapper in util/memfd.c, since it conflicted with the one that is now provided by Glibc. Nikos's tree I used totally unmodified. > Is your guest kernel a stock kernel.org/distro kernel or has it been > modified (especially with security patches)? I tried a slightly modified Chromium OS kernel (5.4.23), and a stock Ubuntu 18.10 kernel (4.15.0). I think the most "normal" setup I tried was building QEMU on Fedora 32, and then attempting to boot a freshly installed Ubuntu Server 18.10 VM with -chardev socket,id=chardev0,path=vhost-user.sock,server,nowait \ -device virtio-vhost-user-pci,chardev=chardev0 (The crash was reproducible with the full QEMU command lines in the write-ups, but these seemed to be the load-bearing bits.) > If no one else knows what is wrong here then it will be necessary to > check the Intel manuals to figure out the exact meaning of > "error_code(0x000b) - reserved bit violation" and why Linux triggers it > with "PGD 3b128067 P4D 3b128067 PUD 3b129067 PMD 3b12a067 PTE > 8000002000000073". Thanks for your insight. Now I at least have a place to start if nobody else knows what's up. :)