Skip to contentSkip to conversation

Support iwarp transports.

PATCH Superseded Steve Wise 1 participant 2 messages Feb 20, 2013 1 message not in the archive InfiniBand

v1 of 2 Superseded Latest is v2 →

lore
Share & tools
lore

Steve Wise

author
#0 lore raw

PATCH 1/1 Support iwarp transports.

- add transport type for making transport-specific decisions
- rdma read sink mrs need REMOTE_WRITE access for iwarp transports
- set initiator_depth and responder_resources based on device max values
- add chelsio devices

---

 src/perftest_communication.c |    8 +++--
 src/perftest_parameters.c    |   63 ++++++++++++++++++++++++++++++++----------
 src/perftest_parameters.h    |    4 ++-
 src/perftest_resources.c     |    2 +
 4 files changed, 57 insertions(+), 20 deletions(-)
src/perftest_communication.c +4 -4
index 781d796..b88be1d 100644
@@ -745,8 +745,8 @@ int rdma_client_connect(struct pingpong_context *ctx,struct perftest_parameters
 
 	memset(&conn_param, 0, sizeof conn_param);
 	if (user_param->verb == READ) {
-		conn_param.responder_resources = RDMA_MAX_RESP_RES;
-		conn_param.initiator_depth = RDMA_MAX_INIT_DEPTH;
+		conn_param.responder_resources = user_param->out_reads;
+		conn_param.initiator_depth = user_param->out_reads;
 	}
 	user_param->work_rdma_cm = temp;
 
@@ -862,8 +862,8 @@ int rdma_server_connect(struct pingpong_context *ctx,
 
 	memset(&conn_param, 0, sizeof conn_param);
 	if (user_param->verb == READ) {
-		conn_param.responder_resources = RDMA_MAX_RESP_RES;
-		conn_param.initiator_depth = RDMA_MAX_INIT_DEPTH;
+		conn_param.responder_resources = user_param->out_reads;
+		conn_param.initiator_depth = user_param->out_reads;
 	}
 	if (user_param->connection_type == UD)
 		conn_param.qp_num = ctx->qp[0]->qp_num;
src/perftest_parameters.c +48 -15

87 lines not on this page · raw message

src/perftest_parameters.h +3 -1
index 463630c..09f3e47 100644
@@ -180,7 +180,8 @@ typedef enum { LOCAL , REMOTE } PrintDataSide;
 typedef enum {CMP_AND_SWAP, FETCH_AND_ADD} AtomicType;
 
 // The type of the device (Hermon B0/A0 or no)
-typedef enum { DEVICE_ERROR = -1 ,UNKNOWN = 0 ,CONNECTX = 1,CONNECTX2 = 2, CONNECTX3 = 3, CONNECTIB = 4, LEGACY = 5} Device;
+typedef enum { DEVICE_ERROR = -1 ,UNKNOWN = 0 ,CONNECTX = 1,CONNECTX2 = 2, CONNECTX3 = 3, CONNECTIB = 4, LEGACY = 5,
+	       CHELSIO_T4 = 6, CHELSIO_T5 = 7} Device;
 
 // Type of test method.
 typedef enum { ITERATIONS , DURATION } TestMethod;
@@ -236,6 +237,7 @@ struct perftest_parameters {
 	int				margin;
 	uint32_t		rem_ud_qpn;
 	uint32_t		rem_ud_qkey;
+	enum ibv_transport_type transport_type;
 	uint8_t			link_type;
 	uint8_t			link_type2;
 	MachineType		machine;
src/perftest_resources.c +2 -0
index fd9809f..01726ba 100644
@@ -376,6 +376,8 @@ int ctx_init(struct pingpong_context *ctx,struct perftest_parameters *user_param
 		
 	} else if (user_param->verb == READ) {
 		flags |= IBV_ACCESS_REMOTE_READ;
+		if (user_param->transport_type == IBV_TRANSPORT_IWARP)
+			flags |= IBV_ACCESS_REMOTE_WRITE;
 
 	} else if (user_param->verb == ATOMIC) {
 		flags |= IBV_ACCESS_REMOTE_ATOMIC;

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html

A message that is not in the archive (sent off-list or not yet received): 20130220040941.31762.66644.stgit-T4OLL4TyM9aNDNWfRnPdfg@public.gmane.org

author
#2 lore raw
Quoted 8 lines · Steve Wise

- add transport type for making transport-specific decisions
- rdma read sink mrs need REMOTE_WRITE access for iwarp transports
- set initiator_depth and responder_resources based on device max values
- add chelsio devices

---

Hey Ido,

This patch gets Chelsio RNICs working with the various perftools apps. I'll also be working on adding multi-port and multi-qp support when using the rdmacm.

Lemme know your thoughts.

Thanks,

Steve.
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html