Re: [for-next PATCH v5 06/11] RDMA/rxe: Extend rxe packet format to support flush

From: Yanjun Zhu
Date: Fri Nov 11 2022 - 04:29:35 EST



在 2022/11/11 16:55, lizhijian@xxxxxxxxxxx 写道:

On 11/11/2022 16:43, Yanjun Zhu wrote:
/******************************************************************************
   * Atomic Extended Transport Header
******************************************************************************/
@@ -910,6 +956,7 @@ enum rxe_hdr_length {
      RXE_ATMETH_BYTES    = sizeof(struct rxe_atmeth),
      RXE_IETH_BYTES        = sizeof(struct rxe_ieth),
      RXE_RDETH_BYTES        = sizeof(struct rxe_rdeth),
+    RXE_FETH_BYTES        = sizeof(struct rxe_feth),
  };
  static inline size_t header_size(struct rxe_pkt_info *pkt)
diff --git a/drivers/infiniband/sw/rxe/rxe_opcode.c
b/drivers/infiniband/sw/rxe/rxe_opcode.c
index d4ba4d506f17..55aad13e57bb 100644
--- a/drivers/infiniband/sw/rxe/rxe_opcode.c
+++ b/drivers/infiniband/sw/rxe/rxe_opcode.c
@@ -101,6 +101,12 @@ struct rxe_wr_opcode_info rxe_wr_opcode_info[] = {
              [IB_QPT_UC]    = WR_LOCAL_OP_MASK,
          },
      },
+    [IB_WR_FLUSH]                    = {
+        .name   = "IB_WR_FLUSH",
+        .mask   = {
+            [IB_QPT_RC]    = WR_FLUSH_MASK,
+        },
+    },
  };
Hi, Zhijian

I am making tests with it. Except rc, other modes are supported? such as
rd, xrc?

Only RC is implemented for FLUSH, current RXE only supports RC service[1].
BTW, XRC is on the way in Bob's patch IIRC.

https://lore.kernel.org/r/cce0f07d-25fc-5880-69e7-001d951750b7@xxxxxxxxx
 40  * IBA header types and methods
 41  *
 42  * Some of these are for reference and completeness only since


 43  * rxe does not currently support RD transport


 44  * most of this could be moved into IB core. ib_pack.h has

 45  * part of this but is incomplete

Zhu Yanjun



Zhu Yanjun