Re: [PATCH for-next v3 07/12] RDMA/erdma: Add verbs header file

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On 3/10/22 12:33 AM, Bernard Metzler wrote:


-----Original Message-----
From: dust.li <dust.li@xxxxxxxxxxxxxxxxx>
Sent: Tuesday, 22 February 2022 11:41
To: Cheng Xu <chengyou.xc@xxxxxxxxxxxxxxx>; jgg@xxxxxxxx;
dledford@xxxxxxxxxx
Cc: leon@xxxxxxxxxx; linux-rdma@xxxxxxxxxxxxxxx;
KaiShen@xxxxxxxxxxxxxxxxx; chengyou@xxxxxxxxxxxxxxxxx;
tonylu@xxxxxxxxxxxxxxxxx
Subject: [EXTERNAL] Re: [PATCH for-next v3 07/12] RDMA/erdma: Add verbs
header file

On Thu, Feb 17, 2022 at 11:01:11AM +0800, Cheng Xu wrote:
From: Cheng Xu <chengyou@xxxxxxxxxxxxxxxxx>

This header file defines the main structrues and functions used for RDMA
Verbs, including qp, cq, mr ucontext, etc,.

Signed-off-by: Cheng Xu <chengyou@xxxxxxxxxxxxxxxxx>
---
drivers/infiniband/hw/erdma/erdma_verbs.h | 345 ++++++++++++++++++++++
1 file changed, 345 insertions(+)
create mode 100644 drivers/infiniband/hw/erdma/erdma_verbs.h

diff --git a/drivers/infiniband/hw/erdma/erdma_verbs.h
b/drivers/infiniband/hw/erdma/erdma_verbs.h
new file mode 100644
index 000000000000..261f8c0bdff3
--- /dev/null
+++ b/drivers/infiniband/hw/erdma/erdma_verbs.h
@@ -0,0 +1,345 @@
+/* SPDX-License-Identifier: GPL-2.0 or BSD-3-Clause */
+
+/* Authors: Cheng Xu <chengyou@xxxxxxxxxxxxxxxxx> */
+/*          Kai Shen <kaishen@xxxxxxxxxxxxxxxxx> */
+/* Copyright (c) 2020-2022, Alibaba Group. */

Maybe it's better to use a single '/**/' for multilines in the comment.

+
+#ifndef __ERDMA_VERBS_H__
+#define __ERDMA_VERBS_H__
+
+#include <linux/errno.h>
+
+#include <rdma/iw_cm.h>
+#include <rdma/ib_verbs.h>
+#include <rdma/ib_user_verbs.h>
+
+#include "erdma.h"
+#include "erdma_cm.h"
+#include "erdma_hw.h"
+
+/* RDMA Capbility. */

Capability

Will fix.


+#define ERDMA_MAX_PD (128 * 1024)
+#define ERDMA_MAX_SEND_WR 4096
+#define ERDMA_MAX_ORD 128
+#define ERDMA_MAX_IRD 128
+#define ERDMA_MAX_SGE_RD 1
+#define ERDMA_MAX_FMR 0
+#define ERDMA_MAX_SRQ 0 /* not support srq now. */
+#define ERDMA_MAX_SRQ_WR 0 /* not support srq now. */
+#define ERDMA_MAX_SRQ_SGE 0 /* not support srq now. */
+#define ERDMA_MAX_CONTEXT (128 * 1024)
+#define ERDMA_MAX_SEND_SGE 6
+#define ERDMA_MAX_RECV_SGE 1
+#define ERDMA_MAX_INLINE (sizeof(struct erdma_sge) *
(ERDMA_MAX_SEND_SGE))

Wouldn't it make sense to define MAX_INLINE in
the abi header file? The user level application
also wants to know about it.


It has another way to expose this capability in core code, e,g,
userspace providers can get MAX_INLINE from struct ib_qp_attr in
ibv_cmd_create_qp response.


And, is the value correct? I did not check how the
user data are carried over, but (from siw) I assume
data are kept in sge[1] .. sge[n-1], and sge[0]
would carry len information and point to sge[1] for
data? With that it would be (ERDMA_MAX_SEND_SGE - 1)
here.


Yes. ERDMA's SQE generally has 3 parts: Header (8Byte), Task
Section (vary with different opcode) and SGE Section. SGE Section
contains sges or inline data, and the length information is always put
in Header Section.


Thanks,
Cheng Xu

<...>



[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux