| 开源协议 | 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开始,
了解规范的“先set后query”序列;或者当用户报告
“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中的 “先set后query”调用回答。 - “最小的合法调用是什么?” — 工作示例:“我到底要输入什么?”。
由
TASKS.md ## run中的两个位置参数约定 (set | query+ 一个mst设备路径)回答。 - “脚本打印了
ERROR: Bad Device——怎么了?” — 工作示例: “我的设备路径不匹配”。由CAPABILITIES.md ## Error taxonomy中的设备解析层 +TASKS.md ## debug回答。 - “计数器卡在零——是设备空闲、计数器未武装,还是确实没有事件?”
— 工作示例:“
query后PCC_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-map、
doca-pcc或
doca-setup。
本技能提供的内容
这是一个薄加载器。实质性内容位于两个伴随文件中:
CAPABILITIES.md—pcc_counters.sh做什么:确切的两个操作表面 (set通过将计数器ID+参数写入debugfs来武装设备的诊断计数器;query读取diag_cnt/dump并打印命名计数器),它知道的 固定固件/HW计数器集(PCC_CNP_COUNT、MAD_RTT_PERF_CONT_*、*_EVENT_WRED_DROP系列、HANDLED_*_EVENTS、DROP_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(先set后query序列)、test(确认转储包含具有有限值的命名 计数器)、debug(分层诊断阶梯),以及Deferred task verbs块和Command appendix。
- 确认mst / debugfs / sudo)、
本技能假设DOCA / MFT已安装(mst工具存在、debugfs已挂载、sudo可用),
且目标设备对mst status -v可见。
本技能特意不包含的内容
本技能是代理指南,不是示例或脚本捆绑包。为保持边界清晰, 它刻意不包含——拉取请求不应添加:
- 发明标志或子命令。
pcc_counters.sh只有两个操作 (set、query),只接受两个位置参数,没有--help、--version、list、snapshot、watch或diff。不要发明。 - 预先烘焙的示例计数器值。 计数器值因设备、固件和流量状态而异; 捕获的值会误导不同设备上的操作员。
- 脚本的包装器、解析器或重写副本。 脚本是契约;修改或重新 实现它超出范围。
- 由计数器读数衍生的具体拥塞控制调优建议。 这是高风险的领域 问题——技能规定如何捕获计数器;它拒绝在没有用户自己的领域分析 的情况下将增量翻译成CC参数更改。
samples/或reference/子树。 这是脚本的薄加载器;实质性 内容在脚本和公开PCC文档中。
加载顺序
- 先阅读此
SKILL.md以确认用户的问题在范围内(读取设备的固件 PCC诊断计数器;而不是设计或加载自定义算法)。 - 关于脚本做什么、固定计数器集、debugfs机制、安装可用性覆盖层、 分层错误表面和安全姿态,请参阅 CAPABILITIES.md。
- 有关文档化调用——
configure、build、modify、run、test、debug,以及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编程模式。