Spdk/lib/nvmf
Alexey Marchuk 019a5361a5 nvmf/rdma: Use contig buffers for multi SGL payload
Currently we allocate buffers perf each SGL descriptor.
That can lead to a problem when we use NVME bdev with
PRP controller and length of the 1st SGL descriptor is
not multiple of block size, i.e. the initiator may send
PRP1 (which is SGL[0]) which end address is page aligned
while start address is not aligned. This is allowed by
the spec. But when we read such a data to a local buffer,
start of the buffer is page aligned when its end is not.
That violates PRP requirements and we can't handle such
request. However if we use contig buffer to write both
PRP1 and PRP2 (SGL[0] and SGL[1]) then we won't meet
this problem.

Some existing unit tests were updated, 1 new was added.

Fixes github issue #1853

Change-Id: Ib2d56112b7b25e235d17bbc6df8dce4dc556e12d
Signed-off-by: Alexey Marchuk <alexeymar@mellanox.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/7259
Community-CI: Broadcom CI
Community-CI: Mellanox Build Bot
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>
2021-05-18 12:44:18 +00:00
..
ctrlr_bdev.c nvmf: Support physical block size if exposed by bdev 2021-05-06 07:14:40 +00:00
ctrlr_discovery.c nvmf: remove a bdev_module.h #include 2021-05-11 11:57:01 +00:00
ctrlr.c nvmf: ctrlr_create - fix missing free qpair_mask on error 2021-05-10 11:14:24 +00:00
fc_ls.c nvmf/fc: Handle out of order fused commands. 2021-01-14 16:18:25 +00:00
fc.c nvmf: use SPDK_TRACE_ARG_TYPE #defines 2021-05-07 11:35:38 +00:00
Makefile nvmf: Allow configurable controller ID range 2021-05-12 09:18:48 +00:00
nvmf_fc.h nvmf/fc: Add flag to differentiate LS queue and non LS queue. 2021-01-14 16:18:25 +00:00
nvmf_internal.h nvmf: Allow configurable controller ID range 2021-05-12 09:18:48 +00:00
nvmf_rpc.c nvmf: Allow configurable controller ID range 2021-05-12 09:18:48 +00:00
nvmf.c nvmf: delay remove subsystem cb until no qpairs remain 2021-05-17 09:52:37 +00:00
rdma.c nvmf/rdma: Use contig buffers for multi SGL payload 2021-05-18 12:44:18 +00:00
spdk_nvmf.map nvmf: Allow configurable controller ID range 2021-05-12 09:18:48 +00:00
subsystem.c nvmf: fix heap corruption of Reservation Report command 2021-05-13 10:10:42 +00:00
tcp.c nvmf/tcp: Don't attempt to offload header digest calculations 2021-05-14 10:03:05 +00:00
transport.c nvmf: call transport abort callback when it's not empty 2021-04-13 08:37:57 +00:00
transport.h nvmf: Allow nvmf_transport_qpair_fini to complete asynchronously. 2020-11-18 11:28:02 +00:00
vfio_user.c vfio-user: add disable-mappable-bar0 flag 2021-05-07 11:31:20 +00:00