Spdk/test/unit/lib
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
..
bdev ut/compress: add UT for boundary crossings w/vtophys 2019-09-20 14:53:25 +00:00
blob ut/cunit: added missing semicolon on CU_ASSERT macros 2019-07-24 18:21:22 +00:00
blobfs UT/blobfs: add a append write over blob boundary UT 2019-08-14 21:42:06 +00:00
event ut/event: remove unused spdk_event_*() functions 2019-08-28 15:26:12 +00:00
ftl lib/ftl: track defragged bands in ftl_reloc 2019-08-27 18:55:40 +00:00
ioat test/unit: remove duplicate mk/spdk.common.mk includes 2019-02-11 09:30:27 +00:00
iscsi Revert "iscsi: change the field bhs to pointer type." 2019-09-19 05:04:00 +00:00
json ut/cunit: added missing semicolon on CU_ASSERT macros 2019-07-24 18:21:22 +00:00
jsonrpc jsonrpc: always allocate response for request 2019-07-19 20:56:54 +00:00
log log: passing user-defined log 2019-06-18 03:56:50 +00:00
lvol ut/lvol: fixed scan-build error on spdk_bs_init 2019-07-01 13:08:33 +00:00
notify lib/notify: rename spdk_notify_get_events to spdk_notify_foreach_event 2019-05-07 06:11:27 +00:00
nvme env: add spdk_pci_device_unclaim() 2019-09-18 20:34:39 +00:00
nvmf rdma: Add DIF support for write operation 2019-09-20 16:07:46 +00:00
reduce test/reduce: support iovecs in compress/decompress UT 2019-08-21 22:09:32 +00:00
scsi scsi_bdev_ut: add SPDK_CU_ASSERT_FATAL before put task. 2019-06-27 12:09:56 +00:00
sock sock: Fix return value of spdk_sock_group_poll to return number of events 2019-08-02 00:19:43 +00:00
thread thread: Add a mechanism to exit a lightweight thread 2019-05-22 04:23:17 +00:00
util test/unit: add test for base64 with Arm NEON intrinsics 2019-09-09 05:40:57 +00:00
vhost test/vhost: Remove event function stubs 2019-09-18 16:45:05 +00:00
json_mock.c subsystem: add per module configuration dump 2018-03-23 02:47:40 -04:00
Makefile bdev/nvme: always enable FTL 2019-05-02 08:41:56 +00:00