Spdk/lib/nvmf
Alexey Marchuk 1bc5710a9e rdma: Add DIF support for write operation
Update transaction length wrt to medata size
Change buffers handling in the case of enabled DIF - add function nvmf_rdma_fill_buffer_with_md_interleave to split SGL into several parts with metadata blocks between them in order to perform RDMA operation with appropriate offsets
Add DIF generation before executing bdev IO operation
Add parsing of DifInsertOrStrip config parameter.
Since there is a limitation on the number of entries in SG list (16), the current approach has a limitation on the max transaction size which depends on the data block size. E.g. if data block size is 512 bytes then the maximum transaction size will be 512 * 16 = 8192 bytes.
In adiition, the size of IO buffer (IOUnitSize conf param) must be aligned to metadata size for better perfromance since metadata is treated as part of this buffer. E.g. if the initiator uses transaction size = 4096, data block size on nvme disk is 512 then IO buffer size should be aligned to (512 + 8) which is 4160. In other case an extra IO buffer will be consumed which will increase the number of entries in SGL and in iov.

Change-Id: I7ad2270fe9dcceb114ece34675eac44e5783a0d5
Signed-off-by: Alexey Marchuk <alexeymar@mellanox.com>
Signed-off-by: Sasha Kotchubievsky <sashakot@mellanox.com>
Signed-off-by: Evgenii Kochetov <evgeniik@mellanox.com>
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/465248
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Seth Howell <seth.howell@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
2019-09-20 16:07:46 +00:00
..
ctrlr_bdev.c nvmf: Add BDEV IO pending statistics 2019-07-12 12:46:29 +00:00
ctrlr_discovery.c nvmf: don't keep a global discovery log page. 2019-09-03 00:30:59 +00:00
ctrlr.c nvmf: Delay sending AER until subsystem resumes 2019-08-14 21:24:27 +00:00
fc_ls.c nvmf/fc: Move pending_data_buf_queue from fc_conn to fc_poll_group 2019-09-09 00:42:22 +00:00
fc.c nvmf: Move pending_data_buf_queue to common struct spdk_nvmf_transport_poll_group 2019-09-09 00:42:22 +00:00
Makefile lib/nvmf: extract RPCs from the subsystem directory 2019-08-21 17:20:28 +00:00
nvmf_fc.h nvmf: Move pending_data_buf_queue to common struct spdk_nvmf_transport_poll_group 2019-09-09 00:42:22 +00:00
nvmf_internal.h nvmf: Move pending_data_buf_queue to common struct spdk_nvmf_transport_poll_group 2019-09-09 00:42:22 +00:00
nvmf_rpc.c rdma: Add DIF support for write operation 2019-09-20 16:07:46 +00:00
nvmf.c nvmf: don't keep a global discovery log page. 2019-09-03 00:30:59 +00:00
rdma.c rdma: Add DIF support for write operation 2019-09-20 16:07:46 +00:00
subsystem.c nvmf: spdk_nvmf_subsystem_remove_ns is no longer asynchronous 2019-07-11 11:19:53 +00:00
tcp.c SPDK: changing TREQ value from 'not specified' to 'not required'. 2019-09-10 17:51:26 +00:00
transport.c nvmf: Move pending_data_buf_queue to common struct spdk_nvmf_transport_poll_group 2019-09-09 00:42:22 +00:00
transport.h NVMe-oF Target: Add FC transport. 2019-07-26 22:17:17 +00:00