news 2026/2/8 8:48:32

【PCIe 总线及设备入门学习专栏 9.1 -- PCIe AER 中的 aer_layer 与 aer_agent】

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【PCIe 总线及设备入门学习专栏 9.1 -- PCIe AER 中的 aer_layer 与 aer_agent】

文章目录

  • AER(Advanced Error Reporting)
  • aer_layer=Transaction Layer 的含义
    • 常见 Transaction Layer 错误类型
  • aer_agent=Requester ID 的含义
      • Requester ID = 作为 TLP 发起者的设备 侦测到错误
  • 日志示例解读
  • Requester ID 的意义 — 如何定位设备?
  • 在实际系统中的典型场景
      • DMA 发起非法访问
      • RC 下发非法 TLP(Host 代码 Bug)
      • EP/RC 返回 Completion 异常
      • 中间设备(PCIe Switch)校验失败
  • 总结

AER(Advanced Error Reporting)

AER 是 PCIe 协议用于增强错误检测与报告的机制,主要用于捕捉:

  • 链路级错误(Physical Layer)

  • 数据链路级错误(Data Link Layer)

  • 传输层错误(Transaction Layer)

  • 协议违规(Protocol Violations)

  • TLP / DLLP 格式错误

当系统内核或 PCIe RC(Root Complex)侦测到错误时,会在 dmesg 或 AER trace 中打印:

AER: aer_layer=Transaction Layer, aer_agent=Requester ID

aer_layer=Transaction Layer 的含义

PCIe 是三层架构:

层级作用
Physical Layer电气、编码、SERDES
Data Link Layer (DLL)ACK/NAK、重传、Sequence Number
Transaction Layer (TL)构造/解析 TLP,地址/命令协议,Completer 操作

所以Transaction Layer 报错表示:

错误发生在 PCIe TLP(Transaction Layer Packet)处理过程中,通常属于:

常见 Transaction Layer 错误类型

错误类型说明
Malformed TLPTLP 格式非法(Header 无效、长度错误)
Unsupported Request接收到对端不支持的请求
Completer Abort (CA)Device 无法完成请求 Completioin
Completion Timeout (CTO)没收到 Completion,超时
Unexpected Completion未请求却收到 Completion
Poisoned TLP (EP-bit)TLP 被标记为 EP(poisoned)
ACS Violation隔离检查失败

当 aer_layer=Transaction Layer,就说明:

错误不是链路物理问题,而是协议级(TLP)的问题
通常与 Host、RC、Endpoint 的 TLP 处理有关。

aer_agent=Requester ID 的含义

AER 日志中会告诉你是哪一个“Agent”检测到错误:

aer_agent含义
Requester ID发起 TLP 的设备发现错误
Completer ID作为 Completion 处理者的设备发现错误
Receiver ID接收该 TLP 的设备检测到错误
Transmitter ID发送该 TLP 的设备发现错误

其中:

Requester ID = 作为 TLP 发起者的设备 侦测到错误

Requester ID 在 PCIe 中代表:

Bus:Device.Functionofthedevicethat initiated the request

解释:

  • 此错误来源于发起 TLP 的设备(Requester)

  • Requester 在收到 Peer/RC 返回的 Completion 或 DLL 错误指示时,发现了问题

  • 因此 TLP 生命周期中,Requester 认为“我发出去的请求出现了异常”

日志示例解读

例如:

AER:Correctederrorreceived:id=00e0AER:aer_layer=Transaction Layer AER:aer_agent=Requester ID AER:status=0x00000040(Unsupported Request)

解释:

  • Transaction Layer→ 收到的 Completion 或响应 TLP 在协议层非法

  • Requester ID→ 错误是发起访问的一方(通常是 RC 或 EP endpoint DMA)发现的

  • Unsupported Request→ 对端设备不支持此请求,返回 UR

此错误一般来源于:

  • DMA 发起无效地址访问

  • RC 下发了 EP 不支持的 TLP(如 I/O 访问)

  • TLP Format/Type 不符合规范

  • 访问 BAR 未启用或窗口越界

Requester ID 的意义 — 如何定位设备?

Requester ID 通常会打印为:

id=00e0

PCIe ID 编码(PCI config space header)为:

Bits[15:8]=Bus Number Bits[7:3]=Device Number Bits[2:0]=Function Number

例:

id=00e0 → Bus 00, Device 0x1c (28), Function 0

你可以用:

lspci -s 00:1c.0 -vvv

查看相关设备。

在实际系统中的典型场景

以下为常见导致Transaction Layer + Requester ID的情况:

DMA 发起非法访问

  • DMA Engine 发出的地址超出 BAR

  • 未设置 IOMMU,虚拟地址非法

  • 访问 RC 不允许的空间(如 PCIe 配置空间)

RC 下发非法 TLP(Host 代码 Bug)

  • 内核驱动读写未映射地址

  • 访问未启用的 BAR

  • I/O Space 访问 EP 不支持导致 UR

EP/RC 返回 Completion 异常

  • EP 返回了 Malformed TLP

  • Completion Lost 或 Timeout

中间设备(PCIe Switch)校验失败

  • Switch 判定 TLP 格式错误

  • ACS/ATS 请求不被允许

总结

字段意义
aer_layer=Transaction Layer错误发生在 PCIe 事务层(TLP 协议级错误)
aer_agent=Requester ID发起 TLP 的设备(DMA/RC/EP)发现错误

因此:

该 AER 日志表示:发起 PCIe 请求的设备在处理返回的 Completion 或协议时发现 TLP 错误。
多数情况由非法访问、UR、格式错误、Completion Timeout导致。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/29 13:57:45

第一个驱动程序

第一个驱动程序 创建空项目删除.inf文件关闭将警告视为错误设置驱动在什么操作系统运行 代码&#xff1a; #include<ntifs.h> //卸载函数 VOID DriverUnload(PDRIVER_OBJECT pDriver) {DbgPrint("(mydriver)驱动程序停止运行了。\n"); }NTSTATUS DriverEntry(P…

作者头像 李华
网站建设 2026/2/6 20:03:04

Wan2.2-T2V-A14B模型在影视院校学生作品创作中的赋能作用

Wan2.2-T2V-A14B模型在影视院校学生作品创作中的赋能作用 在数字内容爆发的时代&#xff0c;影视创作正经历一场静默却深刻的变革。曾经&#xff0c;一部短片的诞生需要摄影机、灯光组、演员调度和漫长的后期流程&#xff1b;如今&#xff0c;一个学生的笔记本上输入几行文字&a…

作者头像 李华
网站建设 2026/2/7 21:58:57

Windows清理神器:快速释放C盘空间与系统优化全攻略

Windows清理神器&#xff1a;快速释放C盘空间与系统优化全攻略 【免费下载链接】WindowsCleaner Windows Cleaner——专治C盘爆红及各种不服&#xff01; 项目地址: https://gitcode.com/gh_mirrors/wi/WindowsCleaner 你的电脑是否经常弹出"磁盘空间不足"的红…

作者头像 李华
网站建设 2026/2/7 23:29:14

图书管理系统-user

图书系统项目一.模块划分介绍Book-书籍相关模块Constant-常量值模块User-用户模块Utils-工具相关模块其中&#xff0c;LibrarySystem是程序入口二.user模块角色上&#xff0c;把图书系统分为管理员模块与普通用户模块&#xff0c;同时支持多普通用户进行登录。每个用户的属性包…

作者头像 李华
网站建设 2026/2/7 11:46:13

Stream-rec:告别手动录制,开启智能直播录制新时代

Stream-rec&#xff1a;告别手动录制&#xff0c;开启智能直播录制新时代 【免费下载链接】stream-rec Automatic streaming record tool powered by FFmpeg. 虎牙/抖音/斗鱼/Twitch/PandaTV直播&#xff0c;弹幕自动录制 项目地址: https://gitcode.com/gh_mirrors/st/strea…

作者头像 李华