numam-spdk/lib/nvmf
Shuhei Matsumoto 8a80461ac6 nvmf/tcp: execute buffer allocation only if request is the first of pendings
RDMA transport executes spdk_nvmf_rdma_request_parse_sgl() only if
the request is the first of the pending requests in the case
RDMA_REQUEST_STATE_NEED_BUFFER in the state machine
spdk_nvmf_rdma_requests_process().

This made RDMA transport possible to use STAILQ for pending requests
because STAILQ_REMOVE parses from head and is slow when the target is in
the middle of STAILQ.

On the other hand, TCP transport executes spdk_nvmf_tcp_req_parse_sgl()
even if the request is in the middle of the pending request in the case
TCP_REQUEST_STATE_NEED_BUFFER in the state machine
spdk_nvmf_tcp_req_process() if the request has in-capsule data.

Hence TCP transport have used TAILQ for pending requests.

This patch removes the condition if the request has in-capsule data
from the case TCP_REQUEST_STATE_NEED_BUFFER.

The purpose of this patch is to unify I/O buffer management further.

Performance degradation was not observed even after this patch.

Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Change-Id: Idc97fe20f7013ca66fd58587773edb81ef7cbbfc
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/466636
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Broadcom SPDK FC-NVMe CI <spdk-ci.pdl@broadcom.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
2019-08-29 18:17:38 +00:00
..
ctrlr_bdev.c nvmf: Add BDEV IO pending statistics 2019-07-12 12:46:29 +00:00
ctrlr_discovery.c nvmf: always update discovery log page if the offset is zero 2019-07-25 18:05:13 +00:00
ctrlr.c nvmf: Delay sending AER until subsystem resumes 2019-08-14 21:24:27 +00:00
fc_ls.c NVMe-oF Target: Add FC transport. 2019-07-26 22:17:17 +00:00
fc.c nvmf/fc: Replace FC specific get/free_buffers by common APIs 2019-08-29 18:17:38 +00:00
Makefile lib/nvmf: extract RPCs from the subsystem directory 2019-08-21 17:20:28 +00:00
nvmf_fc.h nvmf: Move data_from_pool flag to common struct spdk_nvmf_request 2019-08-29 18:17:38 +00:00
nvmf_internal.h nvmf: Add spdk_nvmf_request_get/free_buffers() usable among transports 2019-08-29 18:17:38 +00:00
nvmf_rpc.c rpc/nvmf: add tgt_name options to relevant RPCs. 2019-08-21 17:20:28 +00:00
nvmf.c nvmf: add spdk_nvmf_get_tgt function 2019-08-21 17:20:28 +00:00
rdma.c nvmf/rdma: Replace RDMA specific get/free_buffers by common APIs 2019-08-29 18:17:38 +00:00
subsystem.c nvmf: spdk_nvmf_subsystem_remove_ns is no longer asynchronous 2019-07-11 11:19:53 +00:00
tcp.c nvmf/tcp: execute buffer allocation only if request is the first of pendings 2019-08-29 18:17:38 +00:00
transport.c nvmf: Add spdk_nvmf_request_get/free_buffers() usable among transports 2019-08-29 18:17:38 +00:00
transport.h NVMe-oF Target: Add FC transport. 2019-07-26 22:17:17 +00:00