From 9c1d97a24766dd9fd6dc72ae86fa6f74684b59bc Mon Sep 17 00:00:00 2001 From: Jim Harris Date: Thu, 14 Dec 2017 17:24:51 -0700 Subject: [PATCH] nvme: add checks for sq_head Signed-off-by: Jim Harris Change-Id: I8519a4b68db44cb8fe6dd251a52bf0f1dca73c32 Reviewed-on: https://review.gerrithub.io/391890 Tested-by: SPDK Automated Test System Reviewed-by: Ben Walker Reviewed-by: Daniel Verkamp --- lib/nvme/nvme_pcie.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/nvme/nvme_pcie.c b/lib/nvme/nvme_pcie.c index 37521f3e0..de6bef634 100644 --- a/lib/nvme/nvme_pcie.c +++ b/lib/nvme/nvme_pcie.c @@ -160,6 +160,7 @@ struct nvme_pcie_qpair { uint16_t sq_tail; uint16_t cq_head; + uint16_t sq_head; uint8_t phase; @@ -1096,6 +1097,10 @@ nvme_pcie_qpair_submit_tracker(struct spdk_nvme_qpair *qpair, struct nvme_tracke pqpair->sq_tail = 0; } + if (pqpair->sq_tail == pqpair->sq_head) { + SPDK_ERRLOG("sq_tail is passing sq_head!\n"); + } + spdk_wmb(); g_thread_mmio_ctrlr = pctrlr; if (spdk_likely(nvme_pcie_qpair_update_mmio_required(qpair, @@ -1981,6 +1986,7 @@ nvme_pcie_qpair_process_completions(struct spdk_nvme_qpair *qpair, uint32_t max_ #endif tr = &pqpair->tr[cpl->cid]; + pqpair->sq_head = cpl->sqhd; if (tr->active) { nvme_pcie_qpair_complete_tracker(qpair, tr, cpl, true);