From e48e569d8316480a715ff7f54dfcad0ddcf86ff9 Mon Sep 17 00:00:00 2001 From: Ziye Yang Date: Fri, 5 May 2017 14:59:58 +0800 Subject: [PATCH] nvmf/rdma: Replace the queue empty check Replace with it with check the returned req via spdk_unlikely macro Change-Id: I1202b3955af9a68496d8ced7cf66c20cf26f7fff Signed-off-by: Ziye Yang --- lib/nvmf/rdma.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/nvmf/rdma.c b/lib/nvmf/rdma.c index 23b86f1f4..1118565f2 100644 --- a/lib/nvmf/rdma.c +++ b/lib/nvmf/rdma.c @@ -53,6 +53,7 @@ #include "spdk/string.h" #include "spdk/trace.h" #include "spdk/util.h" +#include "spdk/likely.h" #include "spdk_internal/log.h" @@ -895,11 +896,11 @@ spdk_nvmf_rdma_handle_pending_rdma_rw(struct spdk_nvmf_conn *conn) /* Try to initiate RDMA Reads or Writes on requests that have data buffers */ while (rdma_conn->cur_rdma_rw_depth < rdma_conn->max_rw_depth) { - if (TAILQ_EMPTY(&rdma_conn->pending_rdma_rw_queue)) { + rdma_req = TAILQ_FIRST(&rdma_conn->pending_rdma_rw_queue); + if (spdk_unlikely(!rdma_req)) { break; } - rdma_req = TAILQ_FIRST(&rdma_conn->pending_rdma_rw_queue); TAILQ_REMOVE(&rdma_conn->pending_rdma_rw_queue, rdma_req, link); SPDK_TRACELOG(SPDK_TRACE_RDMA, "Submitting previously queued for RDMA R/W request %p\n", rdma_req);