nvmf: conn_poll now returns a count of requests
Change-Id: Ic239bfa072905bbb65574e344d6a060cb4ce44e5 Signed-off-by: Ben Walker <benjamin.walker@intel.com>
This commit is contained in:
parent
6beb310cf3
commit
04a0ac723c
@ -1111,17 +1111,20 @@ spdk_nvmf_rdma_fini(void)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Returns the number of times that spdk_nvmf_request_exec was called,
|
||||||
|
* or -1 on error.
|
||||||
|
*/
|
||||||
static int
|
static int
|
||||||
nvmf_check_rdma_completions(struct spdk_nvmf_conn *conn)
|
spdk_nvmf_rdma_poll(struct spdk_nvmf_conn *conn)
|
||||||
{
|
{
|
||||||
struct ibv_wc wc;
|
struct ibv_wc wc;
|
||||||
struct spdk_nvmf_rdma_conn *rdma_conn = get_rdma_conn(conn);
|
struct spdk_nvmf_rdma_conn *rdma_conn = get_rdma_conn(conn);
|
||||||
struct spdk_nvmf_rdma_request *rdma_req;
|
struct spdk_nvmf_rdma_request *rdma_req;
|
||||||
struct spdk_nvmf_request *req;
|
struct spdk_nvmf_request *req;
|
||||||
int rc;
|
int rc, count;
|
||||||
int i;
|
|
||||||
|
|
||||||
for (i = 0; i < rdma_conn->queue_depth; i++) {
|
count = 0;
|
||||||
|
while (true) {
|
||||||
rc = ibv_poll_cq(rdma_conn->cq, 1, &wc);
|
rc = ibv_poll_cq(rdma_conn->cq, 1, &wc);
|
||||||
if (rc == 0) // No completions at this time
|
if (rc == 0) // No completions at this time
|
||||||
break;
|
break;
|
||||||
@ -1172,6 +1175,7 @@ nvmf_check_rdma_completions(struct spdk_nvmf_conn *conn)
|
|||||||
SPDK_ERRLOG("request_exec error %d after RDMA Read completion\n", rc);
|
SPDK_ERRLOG("request_exec error %d after RDMA Read completion\n", rc);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
count++;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case IBV_WC_RECV:
|
case IBV_WC_RECV:
|
||||||
@ -1199,6 +1203,7 @@ nvmf_check_rdma_completions(struct spdk_nvmf_conn *conn)
|
|||||||
SPDK_ERRLOG("Command execution failed\n");
|
SPDK_ERRLOG("Command execution failed\n");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
count++;
|
||||||
} else {
|
} else {
|
||||||
/* Start transfer of data from host to target */
|
/* Start transfer of data from host to target */
|
||||||
rc = nvmf_post_rdma_read(req);
|
rc = nvmf_post_rdma_read(req);
|
||||||
@ -1215,7 +1220,7 @@ nvmf_check_rdma_completions(struct spdk_nvmf_conn *conn)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -1244,7 +1249,7 @@ const struct spdk_nvmf_transport spdk_nvmf_transport_rdma = {
|
|||||||
.req_complete = spdk_nvmf_rdma_request_complete,
|
.req_complete = spdk_nvmf_rdma_request_complete,
|
||||||
|
|
||||||
.conn_fini = nvmf_rdma_conn_cleanup,
|
.conn_fini = nvmf_rdma_conn_cleanup,
|
||||||
.conn_poll = nvmf_check_rdma_completions,
|
.conn_poll = spdk_nvmf_rdma_poll,
|
||||||
|
|
||||||
.listen_addr_discover = nvmf_rdma_discover,
|
.listen_addr_discover = nvmf_rdma_discover,
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user