2021, Dec日志-关于PCIe的AER

PCIe定义了很多的Cap.

但大多数人只用到了其中一些最常用的,比如MSI/MSIX, PMC, ARI, PCI express, PASID等等

还有很多Cap, 没有深入了解的实践机会, 比如LTR, OBFF, TPH, 等等,等等,非常之多。

另外一些Cap,  比如AER, DPE/eDPC, ACS, ATS, SRIOV有一点点了解。

ATS, PASID可以看成TA(translation agent), ATPT(address trans and protection talbe), ATC的一个有机整体组合。(TA+ATPT = IOMMU)

EP通过ATS从TA取得translated的地址保存于ATC中,之后减轻了AT的负担。

PASID针对于GVA到SPA的地址映射,作为TA中GCR3的index在使用(BDF, PASID, GVA),相较于GPA到SPA的(BDF, GPA)

ACS与SRIOV上一个日志,有过一些讨论

2021,Dec日志-GPU,DPU,IO虚拟化_笃行笔记的博客-CSDN博客

AER/DPC

Linux内核有相应的支持

pcie « pci « drivers - kernel/git/torvalds/linux.git - Linux kernel source tree

PCI « Documentation - kernel/git/torvalds/linux.git - Linux kernel source tree

在PCI express Cap中有关于(CE, UCE Fatal/Non-Fatal,UR)的相应控制与状态Registers

AER则将各error的控制,Severity, 状态, 及LOG, Source,进一步细化与升级(有一点点类似MSI到MSI-X的演进)

其中,有类似advisory-non fatal从UCE到CE的转化,是一个特殊情况

x86的BIOS也参与到AER的信息收集工作中,就是典型的OS-first还是FW/BIOS-first

无论是OS-first或者FW-first,Linux的AER/DPC则通过pcie_do_recovery运行一个简单的状态机,执行struc pci_driver中注册的struct pci_error_handlers (detected, mmio_en, link_reset, slot_reset, resume etc.)

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值