From ca83335c0e0c6fa0c431a141ddda716a90610a12 Mon Sep 17 00:00:00 2001 From: Or Gerlitz Date: Wed, 9 Mar 2022 17:43:37 +0200 Subject: [PATCH] nvmf/rdma: use LIFO practice for incoming queue To maximize cache locality, use lifo and not fifo when managing objects which are used per IO such as the RDMA receive elements queue. Reported-by: Jim Harris Signed-off-by: Or Gerlitz Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/12272 (master) (cherry picked from commit 5edb8edca752e45db74f34fb16ce5ffe8677f89d) Change-Id: Id8917558acc1bec29943fcbae6afe6b072bde6ac Signed-off-by: Krzysztof Karas Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/12484 Reviewed-by: Tomasz Zawadzki Reviewed-by: Konrad Sztyber Reviewed-by: Jim Harris Tested-by: SPDK CI Jenkins --- lib/nvmf/rdma.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/nvmf/rdma.c b/lib/nvmf/rdma.c index cb180de09..819638725 100644 --- a/lib/nvmf/rdma.c +++ b/lib/nvmf/rdma.c @@ -3886,7 +3886,7 @@ nvmf_rdma_poller_poll(struct spdk_nvmf_rdma_transport *rtransport, rqpair->current_recv_depth++; rdma_recv->receive_tsc = poll_tsc; rpoller->stat.requests++; - STAILQ_INSERT_TAIL(&rqpair->resources->incoming_queue, rdma_recv, link); + STAILQ_INSERT_HEAD(&rqpair->resources->incoming_queue, rdma_recv, link); break; case RDMA_WR_TYPE_DATA: rdma_req = SPDK_CONTAINEROF(rdma_wr, struct spdk_nvmf_rdma_request, data.rdma_wr);