RE: [RFC PATCH 0/2] RDMA/rxe: Add RDMA Atomic Write operation
From: Gromadzki, Tomasz <hidden>
Date: 2021-12-30 19:21:27
1)
rdma_post_atomic_writev(struct rdma_cm_id *id, void *context, struct ibv_sge *sgl, int nsge, int flags, uint64_t remote_addr, uint32_t rkey)
Do we need this API at all?
Other atomic operations (compare_swap/add) do not use struct ibv_sge at all but have a dedicated place in
struct ib_send_wr {
...
struct {
uint64_t remote_addr;
uint64_t compare_add;
uint64_t swap;
uint32_t rkey;
} atomic;
...
}
Would it be better to reuse (extend) any existing field?
i.e.
struct {
uint64_t remote_addr;
uint64_t compare_add;
uint64_t swap_write;
uint32_t rkey;
} atomic;
Thanks
Tomasz
-----Original Message----- From: Xiao Yang <yangx.jy@fujitsu.com> Sent: Thursday, December 30, 2021 1:14 PM To: linux-rdma@vger.kernel.org Cc: yanjun.zhu@linux.dev; rpearsonhpe@gmail.com; jgg@nvidia.com; y- goto@fujitsu.com; lizhijian@fujitsu.com; Gromadzki, Tomasz [off-list ref]; Xiao Yang [off-list ref] Subject: [RFC PATCH 0/2] RDMA/rxe: Add RDMA Atomic Write operation The IB SPEC v1.5[1][2] added new RDMA operations (Atomic Write and Flush). This patchset makes SoftRoCE support new RDMA Atomic Write on RC service. I added RDMA Atomic Write API and a rdma_atomic_write example on my rdma-core repository[3]. You can verify the patchset by building and running the rdma_atomic_write example. server: $ ./rdma_atomic_write_server -s [server_address] -p [port_number] client: $ ./rdma_atomic_write_client -s [server_address] -p [port_number] [1]: https://www.infinibandta.org/ibta-specification/ # login required [2]: https://www.infinibandta.org/wp-content/uploads/2021/08/IBTA- Overview-of-IBTA-Volume-1-Release-1.5-and-MPE-2021-08-17-Secure.pptx [3]: https://github.com/yangx-jy/rdma-core BTW: This patchset also needs the following fix. https://www.spinics.net/lists/linux-rdma/msg107838.html Xiao Yang (2): RDMA/rxe: Rename send_atomic_ack() and atomic member of struct resp_res RDMA/rxe: Add RDMA Atomic Write operation drivers/infiniband/sw/rxe/rxe_comp.c | 4 ++ drivers/infiniband/sw/rxe/rxe_opcode.c | 18 ++++++++ drivers/infiniband/sw/rxe/rxe_opcode.h | 3 ++ drivers/infiniband/sw/rxe/rxe_qp.c | 5 ++- drivers/infiniband/sw/rxe/rxe_req.c | 10 +++-- drivers/infiniband/sw/rxe/rxe_resp.c | 59 ++++++++++++++++++++------ drivers/infiniband/sw/rxe/rxe_verbs.h | 2 +- include/rdma/ib_pack.h | 2 + include/rdma/ib_verbs.h | 2 + include/uapi/rdma/ib_user_verbs.h | 2 + 10 files changed, 88 insertions(+), 19 deletions(-) -- 2.23.0
--------------------------------------------------------------------- Intel Technology Poland sp. z o.o. ul. Slowackiego 173 | 80-298 Gdansk | Sad Rejonowy Gdansk Polnoc | VII Wydzial Gospodarczy Krajowego Rejestru Sadowego - KRS 101882 | NIP 957-07-52-316 | Kapital zakladowy 200.000 PLN. Ta wiadomosc wraz z zalacznikami jest przeznaczona dla okreslonego adresata i moze zawierac informacje poufne. W razie przypadkowego otrzymania tej wiadomosci, prosimy o powiadomienie nadawcy oraz trwale jej usuniecie; jakiekolwiek przegladanie lub rozpowszechnianie jest zabronione. This e-mail and any attachments may contain confidential material for the sole use of the intended recipient(s). If you are not the intended recipient, please contact the sender and delete all copies; any review or distribution by others is strictly prohibited.