080、PCIE错误消息与错误转发:从一次诡异的设备掉线说起
上个月在客户现场调试,遇到个邪门事儿:系统跑着跑着,某个PCIE网卡突然就“消失”了。lspci里找不到,重启又能恢复。查了两天日志,终于在dmesg里看到一行:
[ 1234.567] pcieport 0000:00:1c.0: AER: Corrected error received: 0000:01:00.0
[ 1235.678] pcieport 0000:00:1c.0: PCIe Bus Error: severity=Corrected, type=Physical Layer
就是这行“Corrected”(已纠正)的错误,背后藏着PCIE错误处理的核心逻辑。今天咱们就掰开揉碎讲讲,PCIE的错误消息到底怎么传递,系统怎么处理,以及为什么有时候“修好了”的错误反而会坏事。
错误分类:不是所有错误都致命
PCIE把错误分成三大类,这个分类直接影响后续处理流程:
可纠正错误(Correctable Error)
比如链路层的CRC校验错,硬件自己重传一次就能搞定。这类错误通常不打断业务,但频繁出现可能暗示硬件问题。上面那个案例就是典型——设备自己恢复了,但系统知道“这里出过事”。
非致命错误(Uncorrectable Error Non-Fatal)
数据错了,但设备和链路还能用。比如事务层的数据包内容错误,软件需要介入处理,
订阅专栏 解锁全文
326

被折叠的 条评论
为什么被折叠?



