news 2026/5/21 3:46:12

【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/5/20 11:55:26

终极Windows右键菜单清理指南:告别杂乱无章的右键菜单

终极Windows右键菜单清理指南:告别杂乱无章的右键菜单 【免费下载链接】ContextMenuManager 🖱️ 纯粹的Windows右键菜单管理程序 项目地址: https://gitcode.com/gh_mirrors/co/ContextMenuManager 你是否曾经被Windows右键菜单中堆积如山的无用…

作者头像 李华
网站建设 2026/5/15 20:19:29

XAPK转换终极指南:5分钟搞定安卓应用安装难题

XAPK转换终极指南:5分钟搞定安卓应用安装难题 【免费下载链接】xapk-to-apk A simple standalone python script that converts .xapk file into a normal universal .apk file 项目地址: https://gitcode.com/gh_mirrors/xa/xapk-to-apk 还在为下载的XAPK文…

作者头像 李华
网站建设 2026/5/20 11:55:25

BiliDownload终极指南:2025年最简单快速的B站视频下载神器

BiliDownload终极指南:2025年最简单快速的B站视频下载神器 【免费下载链接】BiliDownload B站视频下载工具 项目地址: https://gitcode.com/gh_mirrors/bil/BiliDownload 还在为无法离线观看B站视频而烦恼吗?BiliDownload作为2025年最实用的B站视…

作者头像 李华
网站建设 2026/5/20 11:55:58

Blender虚幻引擎PSK/PSA文件导入实战:从零解决动画播放问题

Blender虚幻引擎PSK/PSA文件导入实战:从零解决动画播放问题 【免费下载链接】io_scene_psk_psa A Blender plugin for importing and exporting Unreal PSK and PSA files 项目地址: https://gitcode.com/gh_mirrors/io/io_scene_psk_psa 还在为Blender中导入…

作者头像 李华
网站建设 2026/5/20 11:55:57

Wan2.2-T2V-A14B与Runway Gen-3的适用边界在哪里?

Wan2.2-T2V-A14B与Runway Gen-3的适用边界在哪里? 在短视频日活突破十亿、品牌内容竞争进入“秒级注意力”时代的今天,AI生成视频已不再是实验室里的概念玩具,而是实实在在影响创作效率和商业产出的核心工具。从抖音信息流广告到电影预演分镜…

作者头像 李华
网站建设 2026/5/3 20:25:04

数据资产治理:构建企业级数据管理体系的7个关键步骤

数据资产治理:构建企业级数据管理体系的7个关键步骤 关键词:数据治理、数据资产管理、企业级数据管理、数据质量、数据安全、数据战略、数据治理框架 摘要:在数字经济时代,数据已成为企业的核心战略资产。本文深入探讨了构建企业…

作者头像 李华