0

RDMA Aware Programming User Manualの付録 D に記載されている Cross-Channel Communication サポートを使用しようとしています。残念ながら、特定の関数の引数の意味について少し混乱しています。

私の質問

ibv_exp_post_send()および関数はibv_exp_post_task()、それぞれ作業リクエスト構造体のリンクされたリストと作業リクエスト構造体のコレクション*を取ります。その構造体の cq_count と wqe_count の意味は何ですか?

struct ibv_exp_send_wr {
  // ...
  union {
    // ...          
    struct {
      struct ibv_cq   *cq; /* Completion queue (CQ) that WAIT WR relates to */
      int32_t  cq_count;   /* Producer index (PI) of the CQ */
    } cqe_wait; /* Describes IBV_EXP_WR_CQE_WAIT WR */
    struct {
      struct ibv_qp   *qp; /* Queue pair (QP) that SEND_EN/RECV_EN WR relates to */
      int32_t  wqe_count; /* Producer index (PI) of the QP */
    } wqe_enable; /* Desribes IBV_EXP_WR_RECV_ENABLE and IBV_EXP_WR_SEND_ENABLE WR */
  } task;
  // ...
};

最初の作業リクエスト/完了の番号は常に 1 で、後続の作業リクエスト/完了は直線的に増加していますか? それとも、ibv_exp_post_task() 呼び出しの間や、いくつかのリクエストが処理された後に減少するなど、時々リセットされますか? 数値は ibv_exp_post_send または ibv_exp_post_task の間で一致していますか?

*技術的には、作業要求のリンクされたリストを含むタスクのリンクされたリストへのポインタ。

4

1 に答える 1

2

私が見る限り、cq_countフィールドの意味は : で設定できるフラグに依存しibv_exp_send_wr.send_flagsますIBV_EXP_SEND_WAIT_EN_LAST

そのフラグがクリアされている場合、cq_count待機する完了の相対オフセットを決定します。オフセットは、フラグが設定されている場合にのみ更新される内部 CQ フィールドごとに相対的です。

libmlx5 ドライバーからこのコードを確認してください。

case IBV_EXP_WR_CQE_WAIT:
{
        struct mlx5_cq *wait_cq = to_mcq(wr->task.cqe_wait.cq);
        uint32_t wait_index = 0;

        wait_index = wait_cq->wait_index +
                        wr->task.cqe_wait.cq_count;
        wait_cq->wait_count = max(wait_cq->wait_count,
                        wr->task.cqe_wait.cq_count);

        if (exp_send_flags & IBV_EXP_SEND_WAIT_EN_LAST) {
                wait_cq->wait_index += wait_cq->wait_count;
                wait_cq->wait_count = 0;
        }

        set_wait_en_seg(seg, wait_cq->cqn, wait_index);
        seg   += sizeof(struct mlx5_wqe_wait_en_seg);
        size += sizeof(struct mlx5_wqe_wait_en_seg) / 16;
}
break;

wqe_countは同様に動作しますが、特別な値 0 も受け入れることができ、以前に投稿されたすべての作業要求を有効にするようにドライバーに要求します。

于 2016-11-14T09:20:53.563 に答える