lspci -vvv 출력 CorrErr 및 UnCorrErr는 시간이 지남에 따라 변경됩니다.

lspci -vvv 출력 CorrErr 및 UnCorrErr는 시간이 지남에 따라 변경됩니다.

출력 에는 및 lspci -vvv와 같은 플래그가 표시됩니다 . 이러한 플래그가 장치의 상태를 나타낼 수 있는지, 그리고 시간이 지남에 따라 변경되는지 궁금합니다.CorrErrUnCorrErr

샘플 출력은 아래에 보고됩니다.

    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
    Interrupt: pin A routed to IRQ 19
    Region 0: Memory at f6101000 (32-bit, non-prefetchable) [size=2K]
    Region 1: Memory at f6100000 (32-bit, non-prefetchable) [size=256]
    Capabilities: [44] Power Management version 3
            Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
            Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME+
    Capabilities: [80] Express (v1) Endpoint, MSI 00
            DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s 64ns, L1 1us
                    ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
            DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
                    RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
                    MaxPayload 128 bytes, MaxReadReq 16384 bytes
            DevSta: CorrErr+ UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
            LnkCap: Port #1, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 unlimited, L1 unlimited
                    ClockPM- Surprise- LLActRep- BwNot-
            LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+
                    ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
            LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
    Capabilities: [94] MSI: Enable- Count=1/1 Maskable- 64bit-
            Address: fffffffc  Data: 0000

답변1

이 스레드 "cirrascale.com/blog/index.php/pci-debugging-101/"의 다른 게시물 링크는 2019년에 더 이상 작동하지 않습니다. 그러나 다음 위치에 보관된 기사를 찾았습니다.

https://intrepid.warped.com/~scotte/OldBlogEntries/web/index-5.html

다음은 링크된 기사에서 발췌한 내용입니다.

특정 장치(이번에는 " 0000 : 02 : 00 . 0 ")를 지정하면 세부 정보를 얻을 수 있습니다.

# lspci -s 0000:02:00.0 -vvv

출력 제공 :

02:00.0 Serial Attached SCSI controller: LSI Logic / Symbios Logic SAS2008 PCI-Express Fusion-MPT SAS-2 [Falcon] (rev 03)

...

DevSta: CorrErr+ UncorrErr- FatalErr- UnsuppReq+ AuxPwr- TransPend-

...

CESta: RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+

CEMsk: RxErr+ BadTLP+ BadDLLP+ Rollover+ Timeout+ NonFatalErr+

장치 상태 레지스터(“ DevSta “)에서 장치에 일종의 수정 가능한 오류(“ CorrErr+ “)가 발생했음을 확인할 수 있습니다.

오류는 수정 가능한 오류(“ CorrErr “)였으므로 AER 출력에서 ​​흥미로운 부분은 수정 가능한 오류 상태(“ CEsta “)입니다. 치명적이지 않은 오류 비트(" NoNFatalErr+ ")를 제외하고는 어떤 비트도 설정되지 않습니다. 이름만 보면(오류이지만 치명적이지는 않고… 수정이 가능했습니다!) 실제로는 걱정할 필요가 없는 것처럼 들립니다. 오류가 마스크되었는지 여부(" CEMsk ")를 확인하면 장치 공급업체가 해당 오류(" NonFatalErr+ ")를 마스크하기로 선택했음을 알 수 있습니다. 따라서 그들은 이 오류가 PCIe 장치 체인을 속여서 처리해야 할 문제라고 생각하지 않았습니다. . 실제로 PCI-SIG는 수정 가능한 치명적이지 않은 오류를 "권고" 오류로 정의하며, 이는 PCIe 버스의 무결성이나 기능에 대한 문제를 나타내는 것이 아니라 소프트웨어 문제의 표시로 사용해야 한다는 점에 유의하세요.

분명히 알 수 있듯이 일반적으로 상용 마더보드에 내장된 PCIe 장치를 살펴볼 필요는 없지만 특정 장치가 PCIe 버스에 있는 위치와 작동 방식을 파악하는 단계는 대부분의 모든 장치에서 동일합니다. 장치. 앞서 언급했듯이 요즘 더 일반적인 사례는 고객과 파트너가 GB5400과 같은 제품에 대해 동일한 단계를 따르도록 돕는 것입니다.

답변2

아니요, 가려진 수정 가능한 오류를 추적하는 것은 일반적으로 PCIe 장치의 성능에 중대한 영향을 미치는 경우에만 의미가 있습니다.

http://www.cirrascale.com/blog/index.php/pci-debugging-101/

관련 정보