pfc触发段错误
まだ誰も着手していません。
評価
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 初心者へのやさしさ
- 55/100
- issue の種類
- バグ
- 明瞭さ
- おおむね明確
- 活発さ
- 静か
- 技術スタック
- cpp
- 領域
- networking
調査の方向性
QbbNetDevice::Receive() と Resume() から開始し、次に SwitchNode::SendToDev() と SwitchNotifyDequeue() から device->SendPfc() を経由して渡される qIndex を追跡します。PACKET_PAYLOAD_SIZE 1000 と buffer_size 9 で報告されたワークロードを再現し、GetQp(qIndex) における RDMA QP 数を調べ、resume 処理が範囲外アクセスなしに完了することを確認します。
索引モデルが issue の本文から書いたものです。
説明
我将配置文件中的PACKET_PAYLOAD_SIZE 9000 改为1000,将buffer_size从32改为9,其余不变相同的一个workload,执行后者报错如图,AI告诉我是pfc resume的时候输入的队列id不对导致的,存在这个问题吗。
PFC 触发链路是:
SwitchNode::SendToDev()
-> CheckAndSendPfc(inDev, qIndex)
-> device->SendPfc(qIndex, 0) // pause
恢复链路是:
SwitchNode::SwitchNotifyDequeue()
-> CheckAndSendResume(inDev, qIndex)
-> device->SendPfc(qIndex, 1) // resume
GPU/NIC 收到 resume 后:
QbbNetDevice::Receive()
-> Resume(qIndex)
问题就在 Resume():
Ptr lastQp = m_rdmaEQ->GetQp(qIndex);
这里的 qIndex 是 PFC 队列号/优先级号,比如 3,不是 RDMA QP 数组下标。
你这次 gdb 里已经看到:
qIndex = 3
node id = 10
node type = 0
RDMA QP count = 2
也就是只有 2 个 QP,却访问 GetQp(3),直接越界段错误。
为什么 BUFFER_SIZE=9 更容易触发?
PFC 阈值这样算:
(buffer_size - total_hdrm - total_rsrv - shared_used_bytes) >> pfc_a_shift[port]
BUFFER_SIZE 从 32MB 改成 9MB,buffer_size 变小,PFC threshold 明显变低,更容易 pause,也更频繁 resume。于是更容易走到这个错误的 Resume(qIndex)。
- 主要言語
- Python
- スター
- 1.2k
- フォーク
- 190
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
- Dockerfile または Docker Compose ファイルあり
- プルリクエストのテンプレートなし
- コントリビューションガイドなし
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
aliyun/SimAI のほかの issue
-
运行vidur时,采用“backend=aicb” 导致 attention 耗时路径读取缺失的 attn_kv_cache_save_* 字段并触发 KeyError対応中かも このイシューにリンクされたプルリクエストがオープン中、またはマージ済みです。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
-
Duplicated groups for EP and DP_EP対応中かも このイシューにリンクされたプルリクエストがオープン中、またはマージ済みです。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
-
hpn组网问题オープン
難易度 4/5 1〜2日 初心者へのやさしさ 45/100
-
Spectrum-X和HPN组网下,通信仿真时间问题対応中かも @tianhao909 が 19 日前に担当しました。 オープン
似ている issue
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 86/100
NousResearch/hermes-agent#147104 ·
メンテナーはふだん 1 日以内に返信
-
[oblt-aw][autodoc] Document new required `shared-org-key` input for `obs-aw-dependency-review`対応中かも @github-actions が今日担当しました。 オープン
難易度 1/5 1時間未満 初心者へのやさしさ 90/100
メンテナーはふだん 1 日以内に返信
-
bot-triaged module: inductor oncall: pt2 topic: fuzzer triaged
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
メンテナーはふだん 1 日以内に返信
-
getchaintips leaves out the active tip once a header is staged on it, where Core always lists itオープン
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
btclib-org/btclib-node#2158 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
patrick-hudson/put.gd-desktop#979 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信