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> |
||
---|---|---|
.. | ||
ctrlr_bdev.c | ||
ctrlr_discovery.c | ||
ctrlr.c | ||
Makefile | ||
nvmf_fc.h | ||
nvmf_internal.h | ||
nvmf.c | ||
rdma.c | ||
request.c | ||
subsystem.c | ||
tcp.c | ||
transport.c | ||
transport.h |