From 815f82b17bda83084c5b8153143c3d701d9db2d1 Mon Sep 17 00:00:00 2001 From: lorneli Date: Tue, 12 Feb 2019 21:13:19 +0800 Subject: [PATCH] nvme: mv submit_tick assignments to generic qpair code Move req->submit_tick assignments from specific transports to generic qpair code. Check whether submit_tick has been assigned before doing the actual assignment, because a request may be submitted several times and the original submit_tick shouldn't be covered. Change-Id: I2de8018dc21763eb5a19bb9d48dfbdef764b036e Signed-off-by: lorneli Reviewed-on: https://review.gerrithub.io/c/444702 Reviewed-by: Ziye Yang Reviewed-by: Changpeng Liu Reviewed-by: Shuhei Matsumoto Reviewed-by: Darek Stojaczyk Reviewed-by: Seth Howell Reviewed-by: Jim Harris Tested-by: SPDK CI Jenkins --- lib/nvme/nvme_pcie.c | 6 ------ lib/nvme/nvme_qpair.c | 10 ++++++++++ lib/nvme/nvme_rdma.c | 7 ------- lib/nvme/nvme_tcp.c | 7 ------- 4 files changed, 10 insertions(+), 20 deletions(-) diff --git a/lib/nvme/nvme_pcie.c b/lib/nvme/nvme_pcie.c index eba6f3b69..5d349509f 100644 --- a/lib/nvme/nvme_pcie.c +++ b/lib/nvme/nvme_pcie.c @@ -1176,12 +1176,6 @@ nvme_pcie_qpair_submit_tracker(struct spdk_nvme_qpair *qpair, struct nvme_tracke req = tr->req; assert(req != NULL); - req->timed_out = false; - if (spdk_unlikely(pctrlr->ctrlr.timeout_enabled)) { - req->submit_tick = spdk_get_ticks(); - } else { - req->submit_tick = 0; - } pqpair->tr[tr->cid].active = true; diff --git a/lib/nvme/nvme_qpair.c b/lib/nvme/nvme_qpair.c index 7475fc2ef..152198cea 100644 --- a/lib/nvme/nvme_qpair.c +++ b/lib/nvme/nvme_qpair.c @@ -541,6 +541,16 @@ nvme_qpair_submit_request(struct spdk_nvme_qpair *qpair, struct nvme_request *re } } + /* assign submit_tick before submitting req to specific transport */ + if (spdk_unlikely(ctrlr->timeout_enabled)) { + if (req->submit_tick == 0) { /* req submitted for the first time */ + req->submit_tick = spdk_get_ticks(); + req->timed_out = false; + } + } else { + req->submit_tick = 0; + } + return nvme_transport_qpair_submit_request(qpair, req); } diff --git a/lib/nvme/nvme_rdma.c b/lib/nvme/nvme_rdma.c index 0beaa1e79..d034c8eb4 100644 --- a/lib/nvme/nvme_rdma.c +++ b/lib/nvme/nvme_rdma.c @@ -1534,13 +1534,6 @@ nvme_rdma_qpair_submit_request(struct spdk_nvme_qpair *qpair, return -1; } - req->timed_out = false; - if (spdk_unlikely(rqpair->qpair.ctrlr->timeout_enabled)) { - req->submit_tick = spdk_get_ticks(); - } else { - req->submit_tick = 0; - } - wr = &rdma_req->send_wr; nvme_rdma_trace_ibv_sge(wr->sg_list); diff --git a/lib/nvme/nvme_tcp.c b/lib/nvme/nvme_tcp.c index 930a9a02c..6a84324e4 100644 --- a/lib/nvme/nvme_tcp.c +++ b/lib/nvme/nvme_tcp.c @@ -706,13 +706,6 @@ nvme_tcp_qpair_submit_request(struct spdk_nvme_qpair *qpair, return -1; } - req->timed_out = false; - if (spdk_unlikely(tqpair->qpair.ctrlr->timeout_enabled)) { - req->submit_tick = spdk_get_ticks(); - } else { - req->submit_tick = 0; - } - return nvme_tcp_qpair_capsule_cmd_send(tqpair, tcp_req); }