PCIe AER (二)

本文详细介绍了PCIe AER(Advanced Error Reporting)中uncorrectable error状态寄存器的各个位,包括Data Link Protocol Error、Surprise Down Error、Poisoned TLP、Flow Control Protocol Error、Completion Timeout Status、Completer Abort、Unexpected Completion和Receiver Overflow等错误类型,解析了这些错误的含义和可能的原因。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1、AER status register

1.2 uncorrectable error每个bit的介绍(spec 6.2.7) 

        1.2.1 Data Link Protocol Error

        1.2.2 Surprise Down Error

         1.2.3 Poisoned TLP 

        1.2.4 Flow Control Protocol Error

         1.2.5 Completion Timeout Status

         1.2.6 Completer Abort

         1.2.7 Unexpected Completion

        1.2.8 Receiver Overflow


1、AER status register

(5条消息) PCIe AER(一)_Amelie_wyl的博客-优快云博客

1.2 uncorrectable error每个bit的介绍(spec 6.2.7) 

        1.2.1 Data Link Protocol Error

 spec 3.6.2.2     

         如果不熟悉pcie的ack nak机制,需要了解一下(5条消息) PCIe系列专题之三:3.2 数据链路层Ack/Nak机制解析_pcie nak_古猫先生的博客-优快云博客        如果ack nak DLLP中的sequence number和实际传输的TLP 的sequence number 不对应,这个是data link protocol error  ,这里的不对应是指sequence number>NRS;

        acknak机制是为了保证TLP成功接收的反馈机制。每个发送的TLP到达data link layer的时候会给它首部添加sequence number(这个TLP存储在buffer中),发送给对端,对端成功接收会反馈回来一个ack DLLP或没有成功接收反馈一个nak DLLP;接收到ack之后本端就会把buffer中的“缓存”TLP清掉,接到nak就再从buffer里面取出来失败的TLP重发;①每个acknak中也会有sequence number,与刚刚传输的TLP对应是符合正常情况的,还有一种是小于刚刚发送的TLP携带的sequence number;②这个时候本端会重新发送接收的acknak中seuqnece number对应的TLP;③如果大于刚发送的TLP携带的sequence number ,说明丢失了一些TLP,这是一个比较严重的错误data link protocol error 。

        注入错误的时候直接发送一个acknak seuqence number =4095(远大于NRS)
       

         1.2.2 Surprise Down Error

        暴力热插拔会导致这样的错误,另外也可能是链路质量太差,引起大量其他错误,从设备被主设备踢掉,比如NVME盘被踢,也会上报该错误。总之,大概就是异常断掉连接了。

         1.2.3 Poisoned TLP 

         (5条消息) 【31】poisoned TLP导致的MCE问题_linjiasen的博客-优快云博客

        【毅力挑战】PCIe 每日一问一答(2022.03 归档)-阿里云开发者社区 (aliyun.com)

        这个是对TLP的一种“标志”,该bit涉及到Advisory non-fatal。spec规定有几种类型的uncor error,当他们的severity 为0时,按照correct error 方式处理错误,因为这些错误有些环境下可能对系统没有太大影响,所以不建议按照uncor error处理,因为一般的uncor error处理会让系统重启。

        6.2.3.2.4 Advisory Non-Fatal Error Cases

                6.2.3.2.4.1 Completer Sending a Completion with UR/CA Status

                6.2.3.2.4.2 Intermediate Receiver

                6.2.3.2.4.3 Ultimate PCI Express Receiver of a Poisoned TLP

                6.2.3.2.4.4 Requester with Completion Timeout

                6.2.3.2.4.5 Receiver of an Unexpected Completion

        实例参考lecory用例如下:

        1.2.4 Flow Control Protocol Error

        

 (5条消息) PCIe系列专题之二:2.6 Flow Control初始化_pcie flow control_古猫先生的博客-优快云博客(5条消息) PCIe系列专题之二:2.7 Flow Control的实现过程_pcie flow control_古猫先生的博客-优快云博客

        flow control 机制详情不再赘述,可以看上述链接;从链接中就可以看出来分为初始化阶段和update阶段,flow control Protocol error按照协议上写的,将它划分为4种情况:

        Case1:不支持scaled flow control,payload credit 不超过2047,header credit不超过127;支持scaled,也不能超过表格3-2规定的credit

        Case2:无限的creidt(0表示无限)initialization,则不需要再update,如果收到update的时候检查到non-zero,则为FCPE

        Case3:同case2,不同的是payload和header不都是无限的,需要update;需要匹配初始化。

        Case4:如果scaled,update的header scaled要匹配initialization;;;;

         1.2.5 Completion Timeout Status

        顾名思义,相关的配置空间寄存器有:

         1.2.6 Completer Abort

              看下图(spec 2.3.1)

         1.2.7 Unexpected Completion

        1.2.8 Receiver Overflow

        spec 2.6.1.2 FC Information Tracked by Receiver

        这种情况一般是同时发送了很多带大量数据的TLP,超出了credit,导致了这种错误;要么就是FC更新有问题,要么就是request发送有问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值