Date: Tue, 16 Aug 2022 03:02:49 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=265869 Bug ID: 265869 Summary: mmio_rb_lookup finds wrong entry, triggering assertion Product: Base System Version: CURRENT Hardware: amd64 OS: Any Status: New Severity: Affects Only Me Priority: --- Component: bhyve Assignee: virtualization@FreeBSD.org Reporter: email@example.com Hi all. While trying to pass a USB controller through to a VM via PCI passthrough, I hit an assertion in unregister_mem (usr.sbin/bhyve/mem.c): assert(mr->name == memp->name); I hooked the process up to a debugger and printed out the two names, and discovered that indeed: mr->name = "passthru-pci-22" memp->name = "virtio-net-pci-2" so clearly mmio_rb_lookup is returning the wrong memory range. I'm not very knowledgeable about the internals of bhyve, and I don't yet have any further insight into why this might be occurring, but even if this was caused by user error, it is triggering an assertion and thus I feel is worth treating as a bug. Here's my bhyve command: bhyve -AHP -S -w -c sockets=1,cores=8 -m 16G \ -s 0,amd_hostbridge \ -s 31,lpc \ -s 2,virtio-net,tap1,mac=00:A0:98:41:AC:CB \ -s 3,virtio-net,tap12,mac=00:A0:98:88:6F:09,mtu=9000 \ -s 13,ahci-hd,/dev/zvol/fast/vols/winvm1 \ -s 7,virtio-rnd \ -s 9,xhci,tablet \ -s 22,passthru,35/0/3 \ -l bootrom,/root/BHYVE_BHF_CODE.fd \ windowsvm And here's the pciconf entry for the device I'm trying to pass through: ppt0@pci0:35:0:3: class=0x0c0330 rev=0x00 hdr=0x00 vendor=0x1022 device=0x148c subvendor=0x15d9 subdevice=0x145c vendor = 'Advanced Micro Devices, Inc. [AMD]' device = 'Starship USB 3.0 Host Controller' class = serial bus subclass = USB -- You are receiving this mail because: You are the assignee for the bug.