From owner-freebsd-stable@FreeBSD.ORG Wed Aug 29 14:16:57 2012 Return-Path: Delivered-To: freebsd-stable@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 68753106566C; Wed, 29 Aug 2012 14:16:57 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from citadel.icyb.net.ua (citadel.icyb.net.ua [212.40.38.140]) by mx1.freebsd.org (Postfix) with ESMTP id 788BC8FC12; Wed, 29 Aug 2012 14:16:56 +0000 (UTC) Received: from odyssey.starpoint.kiev.ua (alpha-e.starpoint.kiev.ua [212.40.38.101]) by citadel.icyb.net.ua (8.8.8p3/ICyb-2.3exp) with ESMTP id RAA07594; Wed, 29 Aug 2012 17:16:51 +0300 (EEST) (envelope-from avg@FreeBSD.org) Message-ID: <503E2453.9040407@FreeBSD.org> Date: Wed, 29 Aug 2012 17:16:51 +0300 From: Andriy Gapon User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:14.0) Gecko/20120730 Thunderbird/14.0 MIME-Version: 1.0 To: =?UTF-8?B?R3VzdGF1IFDDqXJleiBpIFF1ZXJvbA==?= , John Baldwin References: <503C930C.3010405@entel.upc.edu> <503DE1BC.4050907@entel.upc.edu> <20120829101202.GA74970@server.rulingia.com> <201208290813.55855.jhb@freebsd.org> <503E1961.80402@FreeBSD.org> <503E1F02.6050505@entel.upc.edu> In-Reply-To: <503E1F02.6050505@entel.upc.edu> X-Enigmail-Version: 1.4.3 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: freebsd-stable@FreeBSD.org Subject: Re: Problem adding more than 8 network adapters X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Aug 2012 14:16:57 -0000 on 29/08/2012 16:54 Gustau PĂ©rez i Querol said the following: > Al 29/08/2012 15:30, En/na Andriy Gapon ha escrit: >> I wonder where the discrepancy could come from. >> Why would VirtualBox emulate the bridge differently for different OSes? >> And I do not see any quirks related to bus numbers for this PCI ID in either >> Linux, FreeBSD or lspci code... >> >> I think that output of lspci on FreeBSD could be interesting too (it's available >> via sysutils/pciutils port). >> > > The output of lspci gives the same info as pciconf. I'm attaching it however. [snip] > 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 0 > Bus: primary=01, secondary=01, subordinate=02, sec-latency=0 > !!! Unknown I/O range types e0/df > !!! Unknown memory range types f100/f0ff > > 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 0 > Bus: primary=02, secondary=02, subordinate=03, sec-latency=0 > !!! Unknown I/O range types e0/df > !!! Unknown memory range types f100/f0ff I think that I was wrong with regard to Linux. I see that it does extensive bridge reconfiguring if it notices any insanity. And I'd say that VirtualBix does create an insane config here. I believe that primary should be 0, secondary should be 1 and 2 respectively (as they are) and subordinate should be equal to secondary. So primary bus numbers and subordinate bus numbers are insane here. I am not sure how much the incorrect bus numbers actually affect FreeBSD PCI-PCI driver as it does not seem to use primary and subordinate numbers for anything important. Memory and I/O misconfiguration are most likely much more important here. In any case, here is a link to the broken VirtualBox code: http://www.virtualbox.org/svn/vbox/trunk/src/VBox/Devices/Bus/DevPciIch9.cpp See function ich9pciInitBridgeTopology, which sets primary bus and secondary bus to X and subordinate bus to X+1. And here a link to Linux code that re-configures those bus numbers: http://lxr.linux.no/#linux+v3.5.3/drivers/pci/probe.c#L663 I bet that was "bus configuration invalid, reconfiguring" message during Linux boot. -- Andriy Gapon