[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] Multi-bridged PCIe devices (Was: Re: iommuu/vt-d issues with LSI MegaSAS (PERC5i))



On Fri, Dec 13, 2013 at 03:27:25PM +0000, Gordan Bobic wrote:
> On 12/13/2013 02:56 PM, Jan Beulich wrote:
> >>>>On 13.12.13 at 15:43, Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx> 
> >>>>wrote:
> >>-[0000:00]-+-00.0  Intel Corporation 4th Gen Core Processor DRAM Controller
> >>            +-01.0-[01]--+-00.0  Intel Corporation 82571EB Gigabit Ethernet 
> >> Controller
> >>            |            \-00.1  Intel Corporation 82571EB Gigabit Ethernet 
> >> Controller
> >>            +-01.1-[02]----00.0  LSI Logic / Symbios Logic SAS2008 
> >> PCI-Express Fusion-MPT SAS-2 [Falcon]
> >>            +-02.0  Intel Corporation Xeon E3-1200 v3/4th Gen Core 
> >> Processor Integrated Graphics Controller
> >>            +-03.0  Intel Corporation Xeon E3-1200 v3/4th Gen Core 
> >> Processor HD Audio Controller
> >>            +-14.0  Intel Corporation 8 Series/C220 Series Chipset Family 
> >> USB xHCI
> >>            +-16.0  Intel Corporation 8 Series/C220 Series Chipset Family 
> >> MEI Controller #1
> >>            +-16.3  Intel Corporation 8 Series/C220 Series Chipset Family 
> >> KT Controller
> >>            +-19.0  Intel Corporation Ethernet Connection I217-LM
> >>            +-1a.0  Intel Corporation 8 Series/C220 Series Chipset Family 
> >> USB EHCI #2
> >>            +-1b.0  Intel Corporation 8 Series/C220 Series Chipset High 
> >> Definition Audio Controller
> >>            +-1c.0-[03]----00.0  Intel Corporation 82574L Gigabit Network 
> >> Connection
> >>            +-1c.1-[04]----00.0  Intel Corporation 82574L Gigabit Network 
> >> Connection
> >>            +-1c.3-[05]----00.0  Intel Corporation I210 Gigabit Network 
> >> Connection
> >>            +-1c.4-[06]----00.0  Intel Corporation 82572EI Gigabit Ethernet 
> >> Controller (Copper)
> >>            +-1c.5-[07-09]----00.0-[08-09]--+-01.0-[09]--+-08.0  Brooktree 
> >> Corporation Bt878 Video Capture
> >>            |                               |            +-08.1  Brooktree 
> >> Corporation Bt878 Audio Capture
> >>            |                               |            +-09.0  Brooktree 
> >> Corporation Bt878 Video Capture
> >>            |                               |            +-09.1  Brooktree 
> >> Corporation Bt878 Audio Capture
> >>            |                               |            +-0a.0  Brooktree 
> >> Corporation Bt878 Video Capture
> >>            |                               |            +-0a.1  Brooktree 
> >> Corporation Bt878 Audio Capture
> >>            |                               |            +-0b.0  Brooktree 
> >> Corporation Bt878 Video Capture
> >>            |                               |            \-0b.1  Brooktree 
> >> Corporation Bt878 Audio Capture
> >
> >So 00:1c.5 is the PCIe->PCI bridge, 07:00.0 and 08:01.0 are
> >PCI-PCI bridges, the capture devices are ordinary ones. The only
> >possibly unexpected aspect I can see here is that there are two
> >intermediate PCI-PCI bridges, but iirc this should be handled by
> >the VT-d code.
> 
> Not sure about multiple intermediate PCI-PCI bridges, but I can
> confirm that multiuple intermediate PCIe bridge setup works fine,
> e.g. Intel X58 -> Nvidia NF200 -> PLX -> GPU (GTX690)

To double-check whether this is a problem with the card itself,
I plucked the card in an AMD box (TA890FXE) and an Intel box (ThinkServer
TS130) and they work great there. It only has one PCIe->PCI bridge
for the PCI cards.

TA890FXE:

00:14.4 PCI bridge: ATI Technologies Inc SBx00 PCI to PCI Bridge (rev 40) 
(prog-if 01 [Subtractive decode])
        Flags: bus master, 66MHz, medium devsel, latency 64
        Bus: primary=00, secondary=02, subordinate=02, sec-latency=64
        I/O behind bridge: 0000c000-0000dfff
02:05.0 PCI bridge: Hint Corp HB6 Universal PCI-PCI bridge (non-transparent 
mode) (rev 11) (prog-if 00 [Normal decode])
        Flags: bus master, medium devsel, latency 64
        Bus: primary=02, secondary=03, subordinate=03, sec-latency=64
        Prefetchable memory behind bridge: fde00000-fdefffff
        Capabilities: [80] Power Management version 2
        Capabilities: [90] CompactPCI hot-swap <?> 

       +-14.4-[02-03]--+-05.0-[03]--+-08.0  Brooktree Corporation Bt878 Video 
Capture
           |               |            +-08.1  Brooktree Corporation Bt878 
Audio Capture
           |               |            +-09.0  Brooktree Corporation Bt878 
Video Capture
           |               |            +-09.1  Brooktree Corporation Bt878 
Audio Capture
           |               |            +-0a.0  Brooktree Corporation Bt878 
Video Capture
           |               |            +-0a.1  Brooktree Corporation Bt878 
Audio Capture
           |               |            +-0b.0  Brooktree Corporation Bt878 
Video Capture
           |               |            \-0b.1  Brooktree Corporation Bt878 
Audio Capture
           |               \-06.0  NetMos Technology PCI 9835 Multi-I/O 
Controller

ThinkServer TS130:

00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev a5) (prog-if 01 
[Subtractive decode])
        Flags: bus master, fast devsel, latency 0
        Bus: primary=00, secondary=02, subordinate=03, sec-latency=32
        Prefetchable memory behind bridge: 00000000d0000000-00000000d00fffff
        Capabilities: [50] Subsystem: Lenovo Device 1025
00:00.0 Host bridge: Intel Corporation Device 0108 (rev 09)
        Subsystem: Lenovo Device 1025
        Flags: bus master, fast devsel, latency 0
        Capabilities: [e0] Vendor Specific Information: Len=0c <?>

           +-1e.0-[02-03]----00.0-[03]--+-08.0  Brooktree Corporation Bt878 
Video Capture
           |                            +-08.1  Brooktree Corporation Bt878 
Audio Capture
           |                            +-09.0  Brooktree Corporation Bt878 
Video Capture
           |                            +-09.1  Brooktree Corporation Bt878 
Audio Capture
           |                            +-0a.0  Brooktree Corporation Bt878 
Video Capture
           |                            +-0a.1  Brooktree Corporation Bt878 
Audio Capture
           |                            +-0b.0  Brooktree Corporation Bt878 
Video Capture
           |                            \-0b.1  Brooktree Corporation Bt878 
Audio Capture

SuperMicro (two PCI bridgeS):
         +-1c.5-[07-09]----00.0-[08-09]--+-01.0-[09]--+-08.0  Brooktree 
Corporation Bt878 Video Capture
           |                               |            +-08.1  Brooktree 
Corporation Bt878 Audio Capture
           |                               |            +-09.0  Brooktree 
Corporation Bt878 Video Capture
           |                               |            +-09.1  Brooktree 
Corporation Bt878 Audio Capture
           |                               |            +-0a.0  Brooktree 
Corporation Bt878 Video Capture
           |                               |            +-0a.1  Brooktree 
Corporation Bt878 Audio Capture
           |                               |            +-0b.0  Brooktree 
Corporation Bt878 Video Capture
           |                               |            \-0b.1  Brooktree 
Corporation Bt878 Audio Capture
           |                               \-03.0  Texas Instruments TSB43AB22A 
IEEE-1394a-2000 Controller (PHY/Link) [iOHCI-Lynx]

00:1c.5 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI 
Express Root Port #6 (rev d4) (prog-if 00 [Normal decode])
        Flags: bus master, fast devsel, latency 0
        Bus: primary=00, secondary=07, subordinate=09, sec-latency=0
        Memory behind bridge: f0400000-f05fffff
        Capabilities: [40] Express Root Port (Slot+), MSI 00
        Capabilities: [80] MSI: Enable- Count=1/1 Maskable- 64bit-
        Capabilities: [90] Subsystem: Super Micro Computer Inc Device 0805
        Capabilities: [a0] Power Management version 3
        Kernel driver in use: pcieport


00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor 
PCI Express x16 Controller (rev 06) (prog-if 00 [Normal decode])
        Flags: bus master, fast devsel, latency 0
        Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
        I/O behind bridge: 0000e000-0000efff
        Memory behind bridge: f0d00000-f0dfffff
        Capabilities: [88] Subsystem: Intel Corporation Device 2010
        Capabilities: [80] Power Management version 3
        Capabilities: [90] MSI: Enable+ Count=1/1 Maskable- 64bit-
        Capabilities: [a0] Express Root Port (Slot+), MSI 00
        Capabilities: [100] Virtual Channel
        Capabilities: [140] Root Complex Link
        Capabilities: [d94] #19
        Kernel driver in use: pcieport

07:00.0 PCI bridge: Tundra Semiconductor Corp. Device 8113 (rev 01) (prog-if 01 
[Subtractive decode])
        Flags: bus master, fast devsel, latency 0
        Bus: primary=07, secondary=08, subordinate=09, sec-latency=32
        Memory behind bridge: f0400000-f05fffff
        Capabilities: [60] Subsystem: Super Micro Computer Inc Device 0805
        Capabilities: [a0] Power Management version 3

Which would look like this:

C220 ---> Tundra Bridge -----> (HB6 PCI bridge -> Brooktree BDFs) on the card
              \--------------> IEEE-1394a

I am actually wondering if this 07:00.0 device is the one that
reports itself as 08:00.0 (which I think is what you alluding to Jan)

Gordan (in earlier emails) reported that the VT-d does work for him and
he has much more complex setup than I do on this motherboard:

This is on http://www.newegg.com/Product/Product.aspx?Item=N82E16813188070


 \-[0000:00]-+-00.0  Intel Corporation 5520 I/O Hub to ESI Port [8086:3406]
             +-07.0-[05-08]----00.0-[06-08]--+-00.0-[08]--+-00.0  NVIDIA 
Corporation GF100GL [Quadro 6000] [10de:06d8]
             |                               |            \-00.1  NVIDIA 
Corporation GF100 High Definition Audio Controller [10de:0be5]
             |                               \-02.0-[07]--+-00.0  NVIDIA 
Corporation GF100GL [Quadro 5000] [10de:06d9]
             |                                            \-00.1  NVIDIA 
Corporation GF100 High Definition Audio Controller [10de:0be5]

00:07.0 PCI bridge [0604]: Intel Corporation 5520/5500/X58 I/O Hub PCI Express 
Root Port 7 [8086:340e] (rev 22) (prog-if 00 [Normal decode])
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- 
Stepping- SERR+ FastB2B- DisINTx+
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- 
<MAbort- >SERR- <PERR- INTx-
        Latency: 0, Cache Line Size: 256 bytes
        Bus: primary=00, secondary=05, subordinate=08, sec-latency=0
        I/O behind bridge: 0000c000-0000dfff
        Memory behind bridge: f4000000-fbdfffff

05:00.0 PCI bridge [0604]: NVIDIA Corporation NF200 PCIe 2.0 switch [10de:05b1] 
(rev a3) (prog-if 00 [Normal decode])
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- 
Stepping- SERR+ FastB2B- DisINTx+
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- 
<MAbort- >SERR- <PERR- INTx-
        Latency: 0, Cache Line Size: 256 bytes
        Bus: primary=05, secondary=06, subordinate=08, sec-latency=0
        I/O behind bridge: 0000c000-0000dfff
        Memory behind bridge: f4000000-fbdfffff
        Prefetchable memory behind bridge: 00000000a8000000-00000000bfffffff

06:00.0 PCI bridge [0604]: NVIDIA Corporation NF200 PCIe 2.0 switch [10de:05b1] 
(rev a3) (prog-if 00 [Normal decode])
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- 
Stepping- SERR+ FastB2B- DisINTx+
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- 
<MAbort- >SERR- <PERR- INTx-
        Latency: 0, Cache Line Size: 256 bytes
        Bus: primary=06, secondary=08, subordinate=08, sec-latency=0
        I/O behind bridge: 0000d000-0000dfff
        Memory behind bridge: f8000000-fbdfffff
        Prefetchable memory behind bridge: 00000000b4000000-00000000bfffffff

Thought I am having a hard time parsing the 'lspci -vt' I think it is:

X58---> NF200 ---> Quadro 6000 (GPU and audio card)
  \---> NF200 ---> Quadro 5000 (GPU and audio card).


Which is similar setup as mine - an intermediate bridge.

So I think the code is OK - this is likely a firmware/motherboard
bug.

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.