From 48dee973ac06825bb06ef6e21ad5648816b2e3c4 Mon Sep 17 00:00:00 2001 From: Alexey Marchuk Date: Fri, 15 May 2020 11:19:31 +0300 Subject: [PATCH] nvmf/rdma: Do not log an error for recv WC with error status When we don't use SRQ and close a qpair, we will receive completions with error status for all posted ibv_recv_wrs. This is expected and we don't want to log an error, use debug severity in this case. Fixes #1387 Change-Id: Ia8efb8f24628880454fab1d7f6188e7b31cffb67 Signed-off-by: Alexey Marchuk Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/2451 Tested-by: SPDK CI Jenkins Community-CI: Mellanox Build Bot Community-CI: Broadcom CI Reviewed-by: Ben Walker Reviewed-by: Shuhei Matsumoto --- lib/nvmf/rdma.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/lib/nvmf/rdma.c b/lib/nvmf/rdma.c index a6653cced..8132d97bf 100644 --- a/lib/nvmf/rdma.c +++ b/lib/nvmf/rdma.c @@ -3854,8 +3854,16 @@ nvmf_rdma_poller_poll(struct spdk_nvmf_rdma_transport *rtransport, /* Handle error conditions */ if (wc[i].status) { - SPDK_ERRLOG("Error on CQ %p, request 0x%lu, type %d, status: (%d): %s\n", - rpoller->cq, wc[i].wr_id, rdma_wr->type, wc[i].status, ibv_wc_status_str(wc[i].status)); + if ((rdma_wr->type == RDMA_WR_TYPE_RECV && !rpoller->srq)) { + /* When we don't use SRQ and close a qpair, we will receive completions with error + * status for all posted ibv_recv_wrs. This is expected and we don't want to log + * an error in that case. */ + SPDK_DEBUGLOG(SPDK_LOG_RDMA, "Error on CQ %p, request 0x%lu, type %d, status: (%d): %s\n", + rpoller->cq, wc[i].wr_id, rdma_wr->type, wc[i].status, ibv_wc_status_str(wc[i].status)); + } else { + SPDK_ERRLOG("Error on CQ %p, request 0x%lu, type %d, status: (%d): %s\n", + rpoller->cq, wc[i].wr_id, rdma_wr->type, wc[i].status, ibv_wc_status_str(wc[i].status)); + } error = true;