DOCAPCC计数器Skill doca-pcc-counters

本技能用于调取和运行DOCA工具集中的pcc_counters.sh脚本,通过mst和mlx5 debugfs的diag_cnt接口,对ConnectX/BlueField设备上固定的固件/硬件PCC(可编程拥塞控制)诊断计数器进行武装(set)和查询(query),如CNP计数、RTT性能、WRED丢弃、已处理事件等。适用于拥塞控制行为分析、计数器卡零排查、Bad Device错误诊断和PCC读数证据采集。关键词:DOCA、PCC、拥塞控制、pcc_counters、诊断计数器、CNP、RTT、WRED、mst、debugfs、ConnectX、BlueField。

拥塞控制 0 次安装 0 次浏览 更新于 9/6/2026
开源协议 Apache-2.0
名称 doca-pcc-counters
描述 > 当用户调用DOCA PCC计数器工具——即DOCA工具目录下的 pcc_counters.sh bash脚本——通过mst + mlx5 debugfs的 diag_cnt接口来武装(arm)和读取ConnectX/BlueField设备上 固定的固件/硬件PCC(可编程拥塞控制)诊断计数器(CNP、RTT、 WRED丢弃等)时,使用本技能。脚本接受两个位置参数—— `set

DOCA PCC计数器(pcc_counters.sh

从这里开始: 这是一个工具技能,用于调用 pcc_counters.sh——一个小的bash脚本,通过mlx5 debugfs的 diag_cnt接口,武装(arm)并读取设备的固定固件/硬件PCC诊断计数器 (CNP计数、RTT性能、WRED丢弃、RTT生成、已处理事件)。 打开TASKS.md并从## run开始, 了解规范的“先setquery”序列;或者当用户报告 ERROR: Bad Device“计数器卡在零”“转储为空”时, 从## debug开始。当问题是脚本报告哪些计数器 以及它如何访问它们时,打开CAPABILITIES.md。 如果用户尚未安装DOCA / MFT,请先转到doca-setup

本技能是固件/HW PCC计数器读取的表面。 它不是将自定义拥塞控制内核加载到DPA的主机端控制库 (那是doca-pcc),也不是固件PCC 算法配置(该路径是固件配置,通过 doca-public-knowledge-map路由)。 本脚本读取的计数器是设备/固件诊断计数器,无论是否有自定义 doca-pcc DPA内核在运行,它们都存在——不要将它们与自定义内核是否 加载挂钩。

本技能擅长的示例问题

本技能构建来回答的pcc_counters.sh问题的类别,每类包含一个 工作示例。类别是承载元素;工作示例只是一个实例。

  • “如何读取此设备上的PCC诊断计数器?” — 工作示例:“武装并 转储/dev/mst/mt41692_pciconf0的CNP / RTT / WRED丢弃计数器”。 由CAPABILITIES.md ## Capabilities and modes 中的固定计数器集 + TASKS.md ## run中的 “先setquery”调用回答。
  • “最小的合法调用是什么?” — 工作示例:“我到底要输入什么?”。 由TASKS.md ## run中的两个位置参数约定 (set | query + 一个mst设备路径)回答。
  • “脚本打印了ERROR: Bad Device——怎么了?” — 工作示例: “我的设备路径不匹配”。由CAPABILITIES.md ## Error taxonomy 中的设备解析层 + TASKS.md ## debug回答。
  • “计数器卡在零——是设备空闲、计数器未武装,还是确实没有事件?” — 工作示例:queryPCC_CNP_COUNT读数为0”。 由TASKS.md ## debug + CAPABILITIES.md ## Error taxonomy 中的“先武装后读取”规则和分层诊断回答。
  • “此脚本是否在我的安装中,在哪里?” — 工作示例:pcc_counters.sh 是否存在,安装将其放在哪里”。由CAPABILITIES.md ## Version compatibility 中的安装覆盖回答,该覆盖重定向到规范的 doca-version规则。

目标受众

本技能服务于操作人员、开发人员和AI代理,他们需要读取 ConnectX/BlueField设备的固件PCC诊断计数器,以推理端口上的 拥塞控制行为(CNP生成、RTT请求/响应、WRED丢弃)。具体来说:

  • 网络操作员确认设备上是否正在发生拥塞控制事件(CNP、RTT、WRED丢弃)。
  • 开发人员将自定义doca-pcc算法的效果与设备级PCC诊断计数器关联 (脚本读取固件计数器;自定义算法本身是由 doca-pcc拥有的单独表面)。
  • AI代理生成PCC计数器快照作为拥塞控制调查的证据。

适用于调试脚本本身的bash的用户,不是学习如何编写 自定义PCC算法的地方——该受众属于 doca-pcc——也不适用于想要配置 出厂固件PCC算法的用户(通过 doca-public-knowledge-map路由)。

pcc_counters.sh作为纯bash脚本随DOCA工具目录一起分发 (根据tools/pcc_counters/meson.build中的install_data), 不是编译的二进制文件,也不是链接的库。本技能使用捆绑包的 kind: tool三文件形状(SKILL.md + CAPABILITIES.md + TASKS.md),以便代理的任务动词契约 (configure / build / modify / run / test / debug)在捆绑包中统一。

何时加载此技能

当用户——或代理需要——在有可用mst工具且debugfs已挂载的主机或 BlueField Arm上武装并读取设备PCC诊断计数器时,加载此技能。具体来说:

  • 使用set在目标mst设备上武装诊断计数器。
  • 使用query读取武装后的计数器,并逐字引用命名计数器行。
  • 捕获计数器读数作为拥塞控制调查的证据。

不要加载本技能用于一般DOCA入门、自定义PCC算法设计、主机端 doca-pcc库API、出厂固件PCC算法或DOCA / MFT安装。对于这些, 请路由到doca-public-knowledge-mapdoca-pccdoca-setup

本技能提供的内容

这是一个薄加载器。实质性内容位于两个伴随文件中:

  • CAPABILITIES.mdpcc_counters.sh做什么:确切的两个操作表面 (set通过将计数器ID+参数写入debugfs来武装设备的诊断计数器; query读取diag_cnt/dump并打印命名计数器),它知道的 固定固件/HW计数器集(PCC_CNP_COUNTMAD_RTT_PERF_CONT_**_EVENT_WRED_DROP系列、HANDLED_*_EVENTSDROP_RTT_PORT*/RTT_GEN_PORT*系列),如何将mst设备解析为 PCI地址(mst status -v + lspci)并访问 /sys/kernel/debug/mlx5/<pci>/diag_cnt/,安装可用性覆盖层 重定向到doca-version,分层错误 分类(脚本不存在 / 设备错误 / 查询前未武装 / debugfs或权限 / 计数器卡在零 / 跨领域),以及安全策略,该策略将set标记为 特权debugfs写入,将由读数衍生的任何CC调优决策标记为高风险。
  • TASKS.md — 范围内任务动词的分步工作流:configure(路由到安装
    • 确认mst / debugfs / sudo)、build(路由到安装;无需编译—— 它是脚本)、modify(拒绝——不要修补已发布的脚本)、run (先setquery序列)、test(确认转储包含具有有限值的命名 计数器)、debug(分层诊断阶梯),以及Deferred task verbs块和 Command appendix

本技能假设DOCA / MFT已安装(mst工具存在、debugfs已挂载、sudo可用), 且目标设备对mst status -v可见。

本技能特意不包含的内容

本技能是代理指南,不是示例或脚本捆绑包。为保持边界清晰, 它刻意不包含——拉取请求不应添加:

  • 发明标志或子命令。 pcc_counters.sh只有两个操作 (setquery),只接受两个位置参数,没有--help--versionlistsnapshotwatchdiff。不要发明。
  • 预先烘焙的示例计数器值。 计数器值因设备、固件和流量状态而异; 捕获的值会误导不同设备上的操作员。
  • 脚本的包装器、解析器或重写副本。 脚本是契约;修改或重新 实现它超出范围。
  • 由计数器读数衍生的具体拥塞控制调优建议。 这是高风险的领域 问题——技能规定如何捕获计数器;它拒绝在没有用户自己的领域分析 的情况下将增量翻译成CC参数更改。
  • samples/reference/子树。 这是脚本的薄加载器;实质性 内容在脚本和公开PCC文档中。

加载顺序

  1. 先阅读此SKILL.md以确认用户的问题在范围内(读取设备的固件 PCC诊断计数器;而不是设计或加载自定义算法)。
  2. 关于脚本做什么、固定计数器集、debugfs机制、安装可用性覆盖层、 分层错误表面和安全姿态,请参阅 CAPABILITIES.md
  3. 有关文档化调用——configurebuildmodifyruntestdebug,以及Command appendix——请参阅 TASKS.md

相关技能

  • doca-pcc — 用于编写自定义拥塞控制 内核并将其加载到DPA的主机端库。它是一个独立的表面:pcc_counters.sh 读取的固件PCC诊断计数器独立于任何自定义doca-pcc内核而存在,但 调优自定义算法的操作员可以读取这些计数器来观察设备级CC行为。 将脚本(固件计数器读取)与库(自定义算法加载/控制)混为一谈 是PCC首次接触最常见的错误。
  • doca-public-knowledge-map — 路由到公共DOCA / PCC文档集,包括固件PCC算法配置。
  • doca-version — 规范的DOCA版本处理 规则。CAPABILITIES.md中的## Version compatibility 部分是一个重定向到这里的简明覆盖层。
  • doca-setup — 环境准备、安装验证、 mst工具、debugfs,以及我还没有安装路径与公共NGC DOCA容器。 本技能假设其前提已满足。
  • doca-debug — 跨领域调试阶梯。 PCC计数器读取作为只读设备状态证据来源,在任何拥塞控制调优建议 之前插入。
  • doca-programming-guide — 跨捆绑包共享的一般DOCA编程模式。