Spdk/lib
Jim Harris 183c348557 nvmf/rdma: issue fused cmds consecutively to tgt layer
RDMA READs can cause cmds to be submitted to the target
layer in a different order than they were received
from the host.  Normally this is fine, but not for
fused commands.

So track fused commands as they reach
nvmf_rdma_request_process().  If we find a pair of
sequential commands that don't have valid FUSED settings
(i.e. NONE/SECOND, FIRST/NONE, FIRST/FIRST), we mark
the requests as "fused_failed" and will later fail them
just before they would be normally sent to the target
layer.

When we do find a pair of valid fused commands (FIRST
followed by SECOND), we will wait until both are
READY_TO_EXECUTE, and then submit them to the target
layer consecutively.

This fixes issue #2428 for RDMA transport.

Signed-off-by: Jim Harris <james.r.harris@intel.com>
Change-Id: I01ebf90e17761499fb6601456811f442dc2a2950
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/12018
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
2022-04-05 08:32:06 +00:00
..
accel lib/accel: remove public API for getting capabilities 2022-03-31 09:36:25 +00:00
bdev bdev: Add spdk_for_each_bdev/bdev_leaf for clean up and further improvements 2022-04-05 07:30:47 +00:00
blob blob: add return codes to bs_user_op_abort 2022-03-02 08:39:50 +00:00
blobfs blobfs: Add missing error checks for strdup. 2022-03-22 09:29:42 +00:00
conf so_ver: increase all major versions 2022-01-31 15:29:56 +00:00
dma so_ver: increase all major versions 2022-01-31 15:29:56 +00:00
env_dpdk env/memory: fix unregistration of memory after memory registration issue 2022-03-09 09:06:30 +00:00
env_ocf bdev/ocf: Improve OCF mpools 2022-03-02 08:34:39 +00:00
event add USDT tracepoints for interrupt wakeups 2022-03-21 11:07:05 +00:00
ftl so_ver: increase all major versions 2022-01-31 15:29:56 +00:00
idxd lib/idxd: fail init if IOMMU is not enabled 2022-04-01 08:30:46 +00:00
init so_ver: increase all major versions 2022-01-31 15:29:56 +00:00
ioat so_ver: increase all major versions 2022-01-31 15:29:56 +00:00
iscsi iscsi: fix a memory leak in error handling 2022-02-24 14:55:16 +00:00
json so_ver: increase all major versions 2022-01-31 15:29:56 +00:00
jsonrpc so_ver: increase all major versions 2022-01-31 15:29:56 +00:00
log so_ver: increase all major versions 2022-01-31 15:29:56 +00:00
lvol lvol: finish initial iteration even if blob has no name 2022-02-03 19:43:35 +00:00
nbd so_ver: increase all major versions 2022-01-31 15:29:56 +00:00
notify so_ver: increase all major versions 2022-01-31 15:29:56 +00:00
nvme lib/sock: provide a hint to picking optimal poll group 2022-04-01 12:41:26 +00:00
nvmf nvmf/rdma: issue fused cmds consecutively to tgt layer 2022-04-05 08:32:06 +00:00
rdma so_ver: increase all major versions 2022-01-31 15:29:56 +00:00
reduce lib/reduce: Copy user's buffers if SGL is not supported 2022-03-31 09:34:52 +00:00
rocksdb rocksdb: fix thread name typo 2021-09-03 08:08:20 +00:00
rpc so_ver: increase all major versions 2022-01-31 15:29:56 +00:00
scsi thread: add spdk_thread_exec_msg() 2022-02-23 10:06:49 +00:00
sock lib/sock: provide a hint to picking optimal poll group 2022-04-01 12:41:26 +00:00
thread add USDT tracepoints for interrupt wakeups 2022-03-21 11:07:05 +00:00
trace so_ver: increase all major versions 2022-01-31 15:29:56 +00:00
trace_parser so_ver: increase all major versions 2022-01-31 15:29:56 +00:00
ut_mock so_ver: increase all major versions 2022-01-31 15:29:56 +00:00
util dif: enhance copy API to support block-aligned bounce_iov 2022-04-01 08:29:12 +00:00
vfio_user so_ver: increase all major versions 2022-01-31 15:29:56 +00:00
vhost lib/vhost: Fix ENOMEM resubmission for vhost_blk 2022-04-01 08:30:28 +00:00
virtio so_ver: increase all major versions 2022-01-31 15:29:56 +00:00
vmd vmd: reset root port config before enumeration 2022-03-10 16:45:18 +00:00
Makefile lib/trace_parser: add trace_parser library stubs 2021-09-29 08:57:58 +00:00