Spdk/lib/nvmf
Seth Howell cf73fb2f1f nvmf/rdma: add a pool of request_data structs
This change is related to enabling multi-sgl element support in
the NVMe-oF target.

For single SGL use cases, there is a 1:1  relationship between
rdma_requests and ibv_wrs used to transfer the data associated with
the request. In the ingle SGL case that ibv_wr is embedded inside of
the spdk_nvmf_rdma_request structure as part of an rdma_request_data
structure.
However, with Multi-SGL element support, we require multiple
ibv_wrs per rdma_request. Insted of embedding these
structures inside of the rdma_request and bloating up that object, I
opted to leave the first one embedded in the object and create a pool
that requests can pull from in the Multi-SGL path.
By leaving the first request_data object embedded in the rdma_request
structure, we avoid adding the latency of requesting a mempool object
in the basic cases.

Change-Id: I7282242f1e34a32eb59b55f326a6c331d455625e
Signed-off-by: Seth Howell <seth.howell@intel.com>
Reviewed-on: https://review.gerrithub.io/c/428561
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Chandler-Test-Pool: SPDK Automated Test System <sys_sgsw@intel.com>
2019-01-18 20:43:46 +00:00
..
ctrlr_bdev.c ctrlr_bdev: change spdk_nvmf_bdev_ctrlr_identify_ns to return void 2018-10-15 17:29:30 +00:00
ctrlr_discovery.c nvmf: Only present subsystem if it is ready 2019-01-07 06:02:26 +00:00
ctrlr.c nvmf: Update the subsystem state check during connect 2019-01-11 06:25:02 +00:00
Makefile nvme: Add the NVMe over fabrics TCP/IP transport support 2018-11-19 20:36:05 +00:00
nvmf_fc.h lib/nvmf: fix a typo error 2018-10-12 17:40:16 +00:00
nvmf_internal.h nvmf/transport->add per-pg cache 2019-01-18 16:57:37 +00:00
nvmf.c nvmf: Do not set the error state of the qpair 2018-12-18 04:00:59 +00:00
rdma.c nvmf/rdma: add a pool of request_data structs 2019-01-18 20:43:46 +00:00
request.c nvmf: add free_req function pointer. 2018-07-27 20:50:36 +00:00
subsystem.c nvmf: save the NSID when adding a new Namespace 2019-01-14 03:35:04 +00:00
tcp.c nvmf/tcp: Use the common buffer cache for each polling group 2019-01-18 19:21:58 +00:00
transport.c nvmf/transport->add per-pg cache 2019-01-18 16:57:37 +00:00
transport.h nvmf/transport: move buffer_pool to generic struct. 2019-01-17 19:42:01 +00:00