HW 장애 확인

이강우 2022/01/26 13:03

하드웨어 장애 발생시 dmesg / messages 에 아래와 같은 로그가 발생한다.

[210684.261133] {2}[Hardware Error]: Hardware error from APEI Generic Hardware Error Source: 1
[210684.261134] {2}[Hardware Error]: event severity: fatal
[210684.261135] {2}[Hardware Error]:  Error 0, type: fatal
[210684.261135] {2}[Hardware Error]:   section_type: PCIe error
[210684.261135] {2}[Hardware Error]:   port_type: 4, root port
[210684.261136] {2}[Hardware Error]:   version: 3.0
[210684.261136] {2}[Hardware Error]:   command: 0x0547, status: 0x4010
[210684.261136] {2}[Hardware Error]:   device_id: 0000:16:01.0                    # <<- 이부분
[210684.261137] {2}[Hardware Error]:   slot: 82
[210684.261137] {2}[Hardware Error]:   secondary_bus: 0x18                        # <<- 이부분
[210684.261137] {2}[Hardware Error]:   vendor_id: 0x8086, device_id: 0x2031
[210684.261138] {2}[Hardware Error]:   class_code: 000406
[210684.261138] {2}[Hardware Error]:   bridge: secondary_status: 0x0000, control: 0x0013
[210684.261139] {2}[Hardware Error]:   aer_uncor_status: 0x00000020, aer_uncor_mask: 0x00100000
[210684.261139] {2}[Hardware Error]:   aer_uncor_severity: 0x00062030
[210684.261139] {2}[Hardware Error]:   TLP Header: 00000000 00000000 00000000 00000000
[210684.261140] Kernel panic - not syncing: Fatal hardware error!

위부분에서 중요한것은 장애가 발생한 장치를 찾는것이다. device_id 부분을 확인한다. 위의 예에서는 16:01.0 이 장치 아이디값이다.

장치 아이디를 확인했으면 lspci명령어로 어떤 장치인지 확인한다.

$ lspci -s 16:01.0 -vv

16:01.0 PCI bridge: Intel Corporation Sky Lake-E PCI Express Root Port B (rev 02) (prog-if 00 [Normal decode])
        Physical Slot: 82
        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 29
        NUMA node: 0
        Bus: primary=16, secondary=18, subordinate=1b, sec-latency=0
        I/O behind bridge: [disabled]
        Memory behind bridge: 97700000-97afffff [size=4M]
        Prefetchable memory behind bridge: 0000000092000000-00000000972fffff [size=83M]
        Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
        BridgeCtl: Parity+ SERR+ NoISA- VGA- VGA16+ MAbort- >Reset- FastB2B-
                PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
        Capabilities: <access denied>
        Kernel driver in use: pcieport

해당 장치는 PCI Bridge장치인데 이게 메인보드 칩셋에 있는 장치이긴 하지만 이 칩셋이 문제가 생긴것인지 아니면 이 칩셋을 통해 연결된 다른 PCI장치가 문제인지는 알 수가 없다.
그래서 해당 장치 하위에 연결된 또다른 장치들을 확인해보아야 한다.

-t 옵션을 추가하여 tree 형태로 보도록 한다. 또는 -tvvnnQ 와 같은 상세 옵션을 적용한다.

$ lspci -s 16:01.0 -tvv

0000:16:01.0-[18-1b]----00.0-[19-1b]----03.0-[1a-1b]--+-00.0  Intel Corporation Ethernet Connection X722 for 1GbE
                                                      +-00.1  Intel Corporation Ethernet Connection X722 for 1GbE
                                                      +-00.2  Intel Corporation Ethernet Connection X722 for 1GbE
                                                      \-00.3  Intel Corporation Ethernet Connection X722 for 1GbE

이제 정확한 오류 장비를 확인할 수 있다.

로그인하면 댓글을 남길 수 있습니다.
  • hw_장애_확인.txt
  • 마지막으로 수정됨: 2022/01/26 04:03
  • 저자 koov