[openib-general] Re: PATCH] enhancement to rdma_bw and rdma_lat to utilize the RDMA CM
Michael S. Tsirkin
mst at mellanox.co.il
Tue May 16 07:41:19 PDT 2006
Quoting r. Steve Wise <swise at opengridcomputing.com>:
> Subject: PATCH] enhancement to rdma_bw and rdma_lat to utilize the RDMA CM
>
> I don't know who maintains src/userspace/perftest, but here is a patch
> set that enables rdma_bw and rdma_lat to use the RDMA_CM with the
> addition of the -c or --cma flag.
>
I'm worried that this makes the program too big. Maybe this should be
another test rather than an option?
> The rkey/addr info is exchanged in the private data, and SEND/RECV's are used
> to sync the client/server before and after execution.
Do we really need SEND/RECV messages for this?
I think I get completion with error once the remote side has disconnected. No?
> Also, I added -P or --poll to rdma_bw to allow blocking for completion
> events when none are ready (if you omit -P, it will block when no
> completion is available, otherwise it will spin).
Needs to be a separate patch.
> Signed-off-by: Steve Wise <swise at opengridcomputing.com>
> Index: rdma_lat.c
> ===================================================================
> --- rdma_lat.c (revision 7050)
> +++ rdma_lat.c (working copy)
> @@ -53,6 +53,7 @@
> #include <time.h>
>
> #include <infiniband/verbs.h>
> +#include <rdma/rdma_cma.h>
>
> #include "get_clock.h"
>
> @@ -71,7 +72,8 @@
> struct ibv_context *context;
> struct ibv_pd *pd;
> struct ibv_mr *mr;
> - struct ibv_cq *cq;
> + struct ibv_cq *scq;
> + struct ibv_cq *rcq;
Why are you adding another CQ?
> struct ibv_qp *qp;
> void *buf;
> volatile char *post_buf;
> @@ -80,6 +82,7 @@
> int tx_depth;
> struct ibv_sge list;
> struct ibv_send_wr wr;
> + struct rdma_cm_id *cm_id;
> };
>
> struct pingpong_dest {
> @@ -323,16 +326,22 @@
> return NULL;
> }
>
> - ctx->cq = ibv_create_cq(ctx->context, tx_depth, NULL, NULL, 0);
> - if (!ctx->cq) {
> + ctx->rcq = ibv_create_cq(ctx->context, 1, NULL, NULL, 0);
> + if (!ctx->rcq) {
> fprintf(stderr, "Couldn't create CQ\n");
> return NULL;
> }
CQ of depth 1?
--
MST
More information about the general
mailing list