Re: PCIe ASPM crash on device removal

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

 



[+cc Shaohua and Kenji]

On Fri, Jan 18, 2013 at 4:15 PM, Myron Stowe <myron.stowe@xxxxxxxxx> wrote:
> On Fri, Jan 18, 2013 at 12:53 PM, Joe Lawrence <Joe.Lawrence@xxxxxxxxxxx> wrote:
>> On Fri, 18 Jan 2013, Myron Stowe wrote:
>>
>>> On Fri, Jan 18, 2013 at 11:22 AM, Joe Lawrence <Joe.Lawrence@xxxxxxxxxxx>wrote:
>>>
>>> > The Stratus PCI topology includes a branch that looks like:
>>> >
>>> > ... -00.0-[03-3c]----00.0-[04-2d]--+- ...
>>> >                                    |
>>> >                                    \-01.0-[2c-2d]--+-00.0
>>> >                                                    +-00.1
>>> >                                                    \-1f.0
>>> >
>>> > This is an interesting topology.  The switch contains an Express capable
>>> downstream port - 04:01.0 - leading to PCI (non-Express) devices (2c:00.0,
>>> 2c:00.1, and 2c:1f.0).  Would Express links even be used in this topology?
>>> I'm guessing not, which brings up the question: why would ASPM be inserting
>>> link state structures into its link_list for such a topology?  Seems like
>>> the proper thing to do is change the code in the beginning of
>>> pcie_aspm_init_link_state, or pcie_aspm_sanity_check() with some
>>> re-factoring, to short-circuit out and do nothing (even when ASPM is
>>> enabled in the kernel).
>>>
>>> Could you supply an "lspci -xxx -vvs 04:01.0?  It would be interesting to
>>> see what the "express capabilities" LnkCap indicates with respect to its
>>> ASPM bits (11:10 Active State Power Management (ASPM) Support bits).
>>>
>>> Myron
>>
>> Hi Myron,
>>
>> See lspci output below (hopefully won't be word wrap mangled)
>>
>> -- Joe
>>
>>
>> 04:01.0 PCI bridge: Device 1bcf:0009 (rev 01) (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: 64 bytes
>>         Bus: primary=04, secondary=2c, subordinate=2d, sec-latency=0
>>         I/O behind bridge: 00005000-00005fff
>>         Memory behind bridge: 90000000-92ffffff
>>         Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <PERR-
>>         BridgeCtl: Parity- SERR- NoISA- VGA- MAbort- >Reset- FastB2B-
>>                 PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
>>         Capabilities: [b0] Express (v2) Downstream Port (Slot-), MSI 00
>>                 DevCap: MaxPayload 256 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us
>>                         ExtTag- RBE- FLReset-
>>                 DevCtl: Report errors: Correctable+ Non-Fatal+ Fatal+ Unsupported+
>>                         RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
>>                         MaxPayload 256 bytes, MaxReadReq 512 bytes
>>                 DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
>>                 LnkCap: Port #1, Speed 5GT/s, Width x4, ASPM L1, Latency L0 unlimited, L1 <1us
>>                         ClockPM- Surprise- LLActRep- BwNot-
>>                 LnkCtl: ASPM Disabled; Disabled- Retrain- CommClk-
>>                         ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
>>                 LnkSta: Speed 2.5GT/s, Width x4, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
>>                 DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR-, OBFF Not Supported ARIFwd-
>>                 DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled ARIFwd-
>>                 LnkCtl2: Target Link Speed: Unknown, EnterCompliance+ SpeedDis-, Selectable De-emphasis: -6dB
>>                          Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS+
>>                          Compliance De-emphasis: -6dB
>>                 LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete-, EqualizationPhase1-
>>                          EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
>>         Capabilities: [ec] Power Management version 2
>>                 Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
>>                 Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
>>         Capabilities: [100 v1] Advanced Error Reporting
>>                 UESta:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
>>                 UEMsk:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
>>                 UESvrt: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
>>                 CESta:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
>>                 CEMsk:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
>>                 AERCap: First Error Pointer: 00, GenCap- CGenEn- ChkCap- ChkEn-
>>         Kernel driver in use: pcieport
>> 00: cf 1b 09 00 07 00 10 00 01 00 04 06 10 00 01 00
>> 10: 00 00 00 00 00 00 00 00 04 2c 2d 00 51 51 00 00
>> 20: 00 90 f0 92 f1 ff 01 00 00 00 00 00 00 00 00 00
>> 30: 00 00 00 00 b0 00 00 00 00 00 00 00 0b 01 00 00
>> 40: 00 01 00 00 10 00 00 00 0a 00 00 00 00 00 00 00
>> 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>> 60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>> 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>> 80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>> 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>> a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>> b0: 10 ec 62 00 01 00 00 00 3f 28 00 00 42 78 00 01
>> c0: 00 00 41 10 00 00 00 00 00 00 00 00 00 00 00 00
>> d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>> e0: 1f 08 01 00 00 00 00 00 00 00 00 00 01 00 02 c8
>> f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>
>
> Joe:
>
> Thanks for the data.  So the downstream port of interest has ASPM link
> capability but it's currently not enabled - see LnkCap and LnkCtl
> above.
>
> I'm still do not understand if PCI Express links would even be
> involved in a topology where all the devices connected below the
> downstream port are PCI and not PCI Express.  Seems as if the ASPM
> code is going to a lot of work to put link state structures in place
> for all these devices that would not be capable of supporting ASPM.
>
> I'm still trying to come up to speed understanding ASPM so hopefully
> someone knowledgeable can help clue me in.
>
> Myron
--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux