+40
−4
+2
−1
Loading
SPDK NVMe-oF initiator driver could not transfer IO whose size is more than 128KiB even if NVMe-oF target allows IO whose size is more than 128KiB both for RDMA and TCP transport. Some use cases need to transfer IO larger than 128KiB. For RDMA transport, max_mr_size by ibv_query_device of RDMA devices indicates the maximum size of a single memory region and is independent from the actual I/O size, and is very likely to be larger than 2 MiB which is the granularity we currently register memory regions. Actually some RDMA NICs return UINT64_MAX for max_mr_size by ibv_query_device. Hence use UINT32_MAX and let the generic layer use the controller data to moderate this value. On the other hand, for TCP transport, there is no limit for maximum IO size and hence use UINT32_MAX. Besides, for RDMA transport, max_sges should be the minimum of max_sge got by querying RDMA devices and NVME_RDMA_MAX_SGL_DESCRIPTORS. Hence do this change together in this patch. Signed-off-by:Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> Change-Id: Idc813afd3e525bf5f370c0fcd2623f9c146a5528 Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/459218 Tested-by:
SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by:
Seth Howell <seth.howell5141@gmail.com> Reviewed-by:
Ziye Yang <ziye.yang@intel.com> Reviewed-by:
Changpeng Liu <changpeng.liu@intel.com>