bhyve: Unsupported MSI-X configuration: 2/0/0

Neel Natu neelnatu at gmail.com
Sun Nov 30 01:37:14 UTC 2014


Hi Nikos,

On Sat, Nov 29, 2014 at 6:01 AM, Nikos Vassiliadis <nvass at gmx.com> wrote:
>
>
> On 11/29/14 02:05, Craig Rodrigues wrote:
>>
>> On Fri, Nov 28, 2014 at 1:10 PM, Nikos Vassiliadis <nvass at gmx.com
>> <mailto:nvass at gmx.com>> wrote:
>>
>>     Hi,
>>
>>     I am trying to use PCI passthrough to pass the bge device to a guest
>>     but I am doing something wrong. I have tried several combinations of
>>     pptdevs like "2/0/0 2/0/1 2/0/2 2/0/3" but it always fails on 2/0/0.
>>     Any ideas what I could try?
>>
>>
>> Did you read this: https://wiki.freebsd.org/bhyve/pci_passthru ?
>>
>> After following those instructions, what is the output of pciconf -l -v
>> before and after enabling PCI passthru?
>> On the host and in the guest?
>
>
>
> Before loading vmm.ko:
>>
>> hostb0 at pci0:0:0:0:      class=0x060000 card=0x064b1025 chip=0x01548086
>> rev=0x09 hdr=0x00
>> pcib1 at pci0:0:1:0:       class=0x060400 card=0x064b1025 chip=0x01518086
>> rev=0x09 hdr=0x01
>> vgapci1 at pci0:0:2:0:     class=0x030000 card=0x064b1025 chip=0x01668086
>> rev=0x09 hdr=0x00
>> none0 at pci0:0:22:0:      class=0x078000 card=0x064b1025 chip=0x1e3a8086
>> rev=0x04 hdr=0x00
>> ehci0 at pci0:0:26:0:      class=0x0c0320 card=0x064b1025 chip=0x1e2d8086
>> rev=0x04 hdr=0x00
>> hdac0 at pci0:0:27:0:      class=0x040300 card=0x064b1025 chip=0x1e208086
>> rev=0x04 hdr=0x00
>> pcib2 at pci0:0:28:0:      class=0x060400 card=0x064b1025 chip=0x1e108086
>> rev=0xc4 hdr=0x01
>> pcib3 at pci0:0:28:1:      class=0x060400 card=0x064b1025 chip=0x1e128086
>> rev=0xc4 hdr=0x01
>> ehci1 at pci0:0:29:0:      class=0x0c0320 card=0x064b1025 chip=0x1e268086
>> rev=0x04 hdr=0x00
>> isab0 at pci0:0:31:0:      class=0x060100 card=0x064b1025 chip=0x1e578086
>> rev=0x04 hdr=0x00
>> ahci0 at pci0:0:31:2:      class=0x010601 card=0x064b1025 chip=0x1e038086
>> rev=0x04 hdr=0x00
>> none1 at pci0:0:31:3:      class=0x0c0500 card=0x064b1025 chip=0x1e228086
>> rev=0x04 hdr=0x00
>> vgapci0 at pci0:1:0:0:     class=0x030000 card=0x06911025 chip=0x114010de
>> rev=0xa1 hdr=0x00
>> none2 at pci0:2:0:0:       class=0x020000 card=0x06471025 chip=0x16b514e4
>> rev=0x10 hdr=0x00
>> none3 at pci0:2:0:1:       class=0x080501 card=0x06471025 chip=0x16bc14e4
>> rev=0x10 hdr=0x00
>> none4 at pci0:2:0:2:       class=0x088000 card=0x06471025 chip=0x16be14e4
>> rev=0x10 hdr=0x00
>> none5 at pci0:2:0:3:       class=0x088000 card=0x06471025 chip=0x16bf14e4
>> rev=0x10 hdr=0x00
>> none6 at pci0:3:0:0:       class=0x028000 card=0xe042105b chip=0x472714e4
>> rev=0x01 hdr=0x00
>
>
> After loading vmm.ko:
>>
>> hostb0 at pci0:0:0:0:      class=0x060000 card=0x064b1025 chip=0x01548086
>> rev=0x09 hdr=0x00
>> pcib1 at pci0:0:1:0:       class=0x060400 card=0x064b1025 chip=0x01518086
>> rev=0x09 hdr=0x01
>> vgapci1 at pci0:0:2:0:     class=0x030000 card=0x064b1025 chip=0x01668086
>> rev=0x09 hdr=0x00
>> none0 at pci0:0:22:0:      class=0x078000 card=0x064b1025 chip=0x1e3a8086
>> rev=0x04 hdr=0x00
>> ehci0 at pci0:0:26:0:      class=0x0c0320 card=0x064b1025 chip=0x1e2d8086
>> rev=0x04 hdr=0x00
>> hdac0 at pci0:0:27:0:      class=0x040300 card=0x064b1025 chip=0x1e208086
>> rev=0x04 hdr=0x00
>> pcib2 at pci0:0:28:0:      class=0x060400 card=0x064b1025 chip=0x1e108086
>> rev=0xc4 hdr=0x01
>> pcib3 at pci0:0:28:1:      class=0x060400 card=0x064b1025 chip=0x1e128086
>> rev=0xc4 hdr=0x01
>> ehci1 at pci0:0:29:0:      class=0x0c0320 card=0x064b1025 chip=0x1e268086
>> rev=0x04 hdr=0x00
>> isab0 at pci0:0:31:0:      class=0x060100 card=0x064b1025 chip=0x1e578086
>> rev=0x04 hdr=0x00
>> ahci0 at pci0:0:31:2:      class=0x010601 card=0x064b1025 chip=0x1e038086
>> rev=0x04 hdr=0x00
>> none1 at pci0:0:31:3:      class=0x0c0500 card=0x064b1025 chip=0x1e228086
>> rev=0x04 hdr=0x00
>> vgapci0 at pci0:1:0:0:     class=0x030000 card=0x06911025 chip=0x114010de
>> rev=0xa1 hdr=0x00
>> ppt0 at pci0:2:0:0:        class=0x020000 card=0x06471025 chip=0x16b514e4
>> rev=0x10 hdr=0x00
>> ppt1 at pci0:2:0:1:        class=0x080501 card=0x06471025 chip=0x16bc14e4
>> rev=0x10 hdr=0x00
>> ppt2 at pci0:2:0:2:        class=0x088000 card=0x06471025 chip=0x16be14e4
>> rev=0x10 hdr=0x00
>> ppt3 at pci0:2:0:3:        class=0x088000 card=0x06471025 chip=0x16bf14e4
>> rev=0x10 hdr=0x00
>> ppt4 at pci0:3:0:0:        class=0x028000 card=0xe042105b chip=0x472714e4
>> rev=0x01 hdr=0x00
>
>
> Then I start "bhyve ... -s 10,passthru,2/0/0 ..." and it spits:
> "Unsupported MSI-X configuration: 2/0/0"
> and quits.
>

The "Unsupported MSI-X configuration" referred to here is that bhyve
doesn't emulate the 'Pending Bit Array'.

In most cases this is not relevant because the PBA and the MSI-X
tables are in different page frames. In this case the MSI-X tables are
emulated and the pending bit array page is passed through to the
guest.

If the PBA and MSI-X tables are on the same page frame then you see
this error. You can confirm this by doing 'pciconf -lvbc pci0:2:0:0'.

Having said that the drivers I have seen don't rely at all on the PBA.
So it may be possible that this works just fine with this patch:
https://people.freebsd.org/~neel/patches/bhyve_ignore_unsupported_pba.patch

If it does then I can add a tunable to bhyve to ignore this check.

best
Neel

> This happens *only* with 2/0/0, that is the bge device. When I try to
> passthrough this:
>>
>> none6 at pci0:3:0:0:       class=0x028000 card=0xe042105b chip=0x472714e4
>> rev=0x01 hdr=0x00
>>     vendor     = 'Broadcom Corporation'
>>     device     = 'BCM4313 802.11b/g/n Wireless LAN Controller'
>>     class      = network
>
>
> it goes further, bhyve starts and the device is passed to the host but I
> cannot use it from the VM. Actually my goal is to use the wifi adapter from
> a VM. The bge device is just testing and I thought I should report it/ask
> about it.
>
>
> _______________________________________________
> freebsd-virtualization at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-virtualization
> To unsubscribe, send any mail to
> "freebsd-virtualization-unsubscribe at freebsd.org"


More information about the freebsd-virtualization mailing list