WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] problem with PCI in Xen?

To: <xen-devel@xxxxxxxxxxxxxxxxxxxxx>
Subject: [Xen-devel] problem with PCI in Xen?
From: "Roee Sadeh" <roees@xxxxxxxxxxxx>
Date: Tue, 15 Mar 2005 17:39:53 +0200
Delivery-date: Wed, 16 Mar 2005 07:48:45 +0000
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-archive: <http://sourceforge.net/mailarchive/forum.php?forum=xen-devel>
List-help: <mailto:xen-devel-request@lists.sourceforge.net?subject=help>
List-id: List for Xen developers <xen-devel.lists.sourceforge.net>
List-post: <mailto:xen-devel@lists.sourceforge.net>
List-subscribe: <https://lists.sourceforge.net/lists/listinfo/xen-devel>, <mailto:xen-devel-request@lists.sourceforge.net?subject=subscribe>
List-unsubscribe: <https://lists.sourceforge.net/lists/listinfo/xen-devel>, <mailto:xen-devel-request@lists.sourceforge.net?subject=unsubscribe>
Sender: xen-devel-admin@xxxxxxxxxxxxxxxxxxxxx
Thread-index: AcUpdTuKgQjIxWtYSRSuXOwVkqiydQ==
Thread-topic: problem with PCI in Xen?

Hello,
 
I have a dual-Xeon computer with PCI-X.
I'm using Xen 2.0.5 stable with kernel 2.6.10.
 
I'm trying to run Infiniband in domain zero. I have an Infiniband HCA, which uses PCI-X.
The HCA is a multifunction PCI device having also a PCI bridge.
 
Running 2.6.10 vanilla detects two PCI buses on the HCA where one of them is a PCI bridge.
lspci -vv output looks like this:
 
---------------------- lspci -vv output with vanilla kernel ---------------------------
 
<few devices here omitted>
 
0000:12:02.0 Ethernet controller: Intel Corp. 82544GC Gigabit Ethernet Controller (LOM) (rev 02)
 Subsystem: Intel Corp. 82544GC Based Network Connection
 Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR- FastB2B-
 Status: Cap+ 66Mhz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
 Latency: 32 (63750ns min), cache line size 08
 Interrupt: pin A routed to IRQ 19
 Region 0: Memory at ec000000 (64-bit, non-prefetchable) [size=fe8e0000]
 Region 2: Memory at eb800000 (64-bit, non-prefetchable) [size=128K]
 Region 4: I/O ports at a000 [size=32]
 Expansion ROM at 00020000 [disabled]
 Capabilities: [dc] Power Management version 2
  Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
  Status: D0 PME-Enable- DSel=0 DScale=1 PME-
 Capabilities: [e4] PCI-X non-bridge device.
  Command: DPERE- ERO+ RBC=0 OST=0
  Status: Bus=0 Dev=0 Func=0 64bit- 133MHz- SCD- USC-, DC=simple, DMMRBC=0, DMOST=0, DMCRS=0, RSCEM- Capabilities: [f0] Message Signalled Interrupts: 64bit+ Queue=0/0 Enable-
  Address: 0000000000000000  Data: 0000
 
0000:13:02.0 PCI bridge: Mellanox Technology MT23108 InfiniHost HCA bridge (rev a1) (prog-if 00 [Normal decode])
 Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B-
 Status: Cap+ 66Mhz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
 Latency: 32, cache line size 08
 Bus: primary=13, secondary=14, subordinate=14, sec-latency=32
 Memory behind bridge: eb000000-eb7fffff
 Prefetchable memory behind bridge: 00000000f0000000-00000000fe700000
 BridgeCtl: Parity- SERR- NoISA- VGA- MAbort- >Reset- FastB2B-
 Capabilities: [70] PCI-X bridge device.
  Secondary Status: 64bit+, 133MHz+, SCD-, USC-, SCO-, SRD- Freq=3
  Status: Bus=0 Dev=0 Func=0 64bit- 133MHz- SCD- USC-, SCO-, SRD-
  : Upstream: Capacity=0, Commitment Limit=0
  : Downstream: Capacity=0, Commitment Limit=0
 
0000:14:00.0 InfiniBand: Mellanox Technology MT23108 InfiniHost HCA (rev a1)
 Subsystem: Mellanox Technology MT23108 InfiniHost HCA
 Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B-
 Status: Cap+ 66Mhz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
 Latency: 32, cache line size 08
 Interrupt: pin A routed to IRQ 17
 Region 0: Memory at eb000000 (64-bit, non-prefetchable)
 Region 2: Memory at fe000000 (64-bit, prefetchable) [size=8M]
 Region 4: Memory at f0000000 (64-bit, prefetchable) [size=128M]
 Capabilities: [40] #11 [001f]
 Capabilities: [50] Vital Product Data
 Capabilities: [60] Message Signalled Interrupts: 64bit+ Queue=0/5 Enable-
  Address: 0000000000000000  Data: 0000
 Capabilities: [70] PCI-X non-bridge device.
  Command: DPERE- ERO- RBC=0 OST=1
  Status: Bus=0 Dev=0 Func=0 64bit- 133MHz- SCD- USC-, DC=simple, DMMRBC=0, DMOST=0, DMCRS=0, RSCEM-
-------------------------------------------------------------------------------------------------------
 
My problem is that the Xen kernel (linux-2.6.10-xen0) does not detect the PCI bridge bus (bus 13) but only the second bus.
(One can also spot that during PCI scan in the kernel boot).
 
---------------------- lspci -vv output with 2.6.10-xen0 kernel ---------------------------
 
<few devices here omitted>
 
0000:12:02.0 Ethernet controller: Intel Corp. 82544GC Gigabit Ethernet Controller (LOM) (rev 02)
 Subsystem: Intel Corp. 82544GC Based Network Connection
 Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR- FastB2B-
 Status: Cap+ 66Mhz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
 Latency: 32, cache line size 08
 Interrupt: pin ? routed to IRQ 19
 Region 0: Memory at ec000000 (64-bit, non-prefetchable) [size=fe8e0000]
 Region 2: Memory at eb800000 (64-bit, non-prefetchable) [size=128K]
 Region 4: I/O ports at a000 [size=32]
 Expansion ROM at 00020000 [disabled]
 Capabilities: [dc] Power Management version 2
  Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
  Status: D0 PME-Enable- DSel=0 DScale=1 PME-
 Capabilities: [e4] PCI-X non-bridge device.
  Command: DPERE- ERO+ RBC=0 OST=0
  Status: Bus=0 Dev=0 Func=0 64bit- 133MHz- SCD- USC-, DC=simple, DMMRBC=0, DMOST=0, DMCRS=0, RSCEM- Capabilities: [f0] Message Signalled Interrupts: 64bit+ Queue=0/0 Enable-
  Address: 0000000000000000  Data: 0000
 
0000:14:00.0 InfiniBand: Mellanox Technology MT23108 InfiniHost HCA (rev a1)
 Subsystem: Mellanox Technology MT23108 InfiniHost HCA
 Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B-
 Status: Cap+ 66Mhz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
 Latency: 32, cache line size 08
 Interrupt: pin ? routed to IRQ 17
 Region 0: Memory at eb000000 (64-bit, non-prefetchable)
 Region 2: Memory at fe000000 (64-bit, prefetchable) [size=8M]
 Region 4: Memory at f0000000 (64-bit, prefetchable) [size=128M]
 Capabilities: [40] #11 [001f]
 Capabilities: [50] Vital Product Data
 Capabilities: [60] Message Signalled Interrupts: 64bit+ Queue=0/5 Enable-
  Address: 0000000000000000  Data: 0000
 Capabilities: [70] PCI-X non-bridge device.
  Command: DPERE- ERO- RBC=0 OST=1
  Status: Bus=0 Dev=0 Func=0 64bit- 133MHz- SCD- USC-, DC=simple, DMMRBC=0, DMOST=0, DMCRS=0, RSCEM-
-----------------------------------------------------------------------------------------------------------
 
Other differences that I see besides the missing bus is that interrupt pin is marked with '?' in the xen kernel:
Interrupt: pin ? routed to IRQ 17
                            ^^^^^
 
In the vanilla kernel it says something like:
Interrupt: pin A routed to IRQ 17
                            ^^^^^
 
When I load the HCA driver, it fails (it suceeds in the vanilla kernel).
 
 
Is anybody else experiencing such problems?
Is there a fix to this problem?
 
Are there any known problems with the PCI support in Xen in general?
I read in the mailing list that Xen is hiding PCI bridges. Why is that?
 
 
Thanks,
 
Ro'ee
<Prev in Thread] Current Thread [Next in Thread>