Problem adding more than 8 network adapters
John Baldwin
jhb at freebsd.org
Wed Aug 29 12:25:48 UTC 2012
On Wednesday, August 29, 2012 6:12:02 am Peter Jeremy wrote:
> [Moving to -stable and adding jhb@ for his input]
>
> On 2012-Aug-29 11:32:44 +0200, Gustau Pérez i Querol <gperez at entel.upc.edu> wrote:
> >Al 29/08/2012 11:02, En/na Peter Jeremy ha escrit:
> >> On 2012-Aug-28 11:44:44 +0200, Gustau Pérez i Querol <gperez at entel.upc.edu> wrote:
> >>> I'm running FreeBSD 9.1 RC1/AMD64 with VirtualBox. The problem I'm
> >>> facing is that I can't use more than 8 network adapters plugged to the
> >>> virtual machine.
> >> ...
> >>> I don't know if it's a net@ problem or maybe it is a problem with
> >>> the emulated PCI-bridge and then stable@ should be contacted. Also, I'm
> >>> not sure if a real machine would support more than 8 network adapters or
> >>> not. Any hints would be appreciated.
> >> I don't think I've ever used more than 6 physical NICs in a host but don't
> >> know of any reason for >8 to not work.
> >
> >> Can you please post a "pciconf -lv" from FreeBSD and the equivalent
> >> "lspci" from Linux. A FreeBSD verbose boot log might also help.
> >
> > Sure. I'm attaching them to this mail. I hope the mailing list
> >doesn't eat them. If it does, I will post them online and send the URL
> >to the mailing list.
>
> Ah.. lspci shows the 9th LANCE at 02:00.0. The verbose boot shows
> FreeBSD finds pcib2 (at pci0 device 25.0) but doesn't see anything
> on that bus. ISTR jhb@ will recognize that problem.
Silly firmware, VM, whatever it is. :) It's buggy.
> >pcib1: <PCI-PCI bridge> at device 24.0 on pci0
> >pcib1: domain 0
> >pcib1: secondary bus 1
> >pcib1: subordinate bus 2
> >pcib1: no prefetched decode
> >pcib1: Subtractively decoded bridge.
> >pci1: <PCI bus> on pcib1
> >pci1: domain=0, physical bus=1
> >pcib2: <PCI-PCI bridge> at device 25.0 on pci0
> >pcib2: domain 0
> >pcib2: secondary bus 2
> >pcib2: subordinate bus 3
> >pcib2: no prefetched decode
> >pcib2: Subtractively decoded bridge.
> >pci2: <PCI bus> on pcib2
> >pci2: domain=0, physical bus=2
This is indeed the problem. PCI bus 2 is "claimed" by both pcib1 and pcib2
since the VM author programmed the bridges incorrectly. In this case, the
subordinate bus should be "1" and "2", not "2" and "3". You could add a hack
to pci_pci.c to fix the subordinate bus on these bridges which should probably
fix this.
> >00:18.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev f2) (prog-if 01 [Subtractive decode])
> > Flags: bus master, 66MHz, fast devsel, latency 64
> > Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
> >
> >00:19.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev f2) (prog-if 01 [Subtractive decode])
> > Flags: bus master, 66MHz, fast devsel, latency 64
> > Bus: primary=00, secondary=02, subordinate=02, sec-latency=0
> > I/O behind bridge: 00001000-00001fff
> > Memory behind bridge: 40000000-400fffff
Note here in this output (presumably from lspci under Linux?), the
subordinate bus register == secondary bus register for each bridge.
--
John Baldwin
More information about the freebsd-stable
mailing list