news 2026/4/18 9:00:45

【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/4/18 8:52:40

基于SpringBoot的设备管理系统的设计与实现源码设计与文档

前言基于 SpringBoot 的设备管理系统,直击企业设备管理 “台账分散、维护不及时、故障难预判、数据无支撑” 的核心痛点,依托 SpringBoot 的高效开发与稳定运行优势,构建 “设备全生命周期管控 智能运维 数据可视化” 的一体化管理平台。传…

作者头像 李华
网站建设 2026/4/18 5:31:57

3步解锁Mac隐藏技能:用PlayCover畅玩iOS应用全攻略

3步解锁Mac隐藏技能:用PlayCover畅玩iOS应用全攻略 【免费下载链接】PlayCover Community fork of PlayCover 项目地址: https://gitcode.com/gh_mirrors/pl/PlayCover 为什么你的Mac能运行iOS应用?当你手握Apple Silicon芯片的Mac时,…

作者头像 李华
网站建设 2026/4/18 5:38:35

小红书内容提取终极指南:一键获取无水印素材

小红书内容提取终极指南:一键获取无水印素材 【免费下载链接】XHS-Downloader 免费;轻量;开源,基于 AIOHTTP 模块实现的小红书图文/视频作品采集工具 项目地址: https://gitcode.com/gh_mirrors/xh/XHS-Downloader 你是否曾…

作者头像 李华
网站建设 2026/4/18 5:41:11

基于Wan2.2-T2V-A14B的智能脚本可视化工具设计思路

基于Wan2.2-T2V-A14B的智能脚本可视化工具设计思路 在影视策划会议上,导演对着一页文字剧本反复解释:“这里主角应该是缓慢转身,灯光从冷蓝渐变到暖黄,情绪要压抑中带着希望。”然而团队成员脑海中浮现的画面却各不相同。这种“想…

作者头像 李华
网站建设 2026/4/18 7:02:26

10、单页应用结账工作流的实现与管理

单页应用结账工作流的实现与管理 在单页应用(SPA)的开发中,结账工作流是一个常见且重要的功能。本文将详细介绍如何构建一个基于 MobX 的结账工作流系统,包括可观察状态的建模、工作流步骤的管理、路由的处理以及 React 组件的实现。 1. 可观察状态建模 结账工作流的核心…

作者头像 李华