numam-spdk/lib
Seth Howell 37ad7fd3b8 rdma: properly account num_outstanding_data_wr
This value was not being decremented when we got SEND completions for
write operations because we were using the recv send to indicate when we
had completed all writes associated with the request. I also erroneously
made the assumption that spdk_nvmf_rdma_request_parse_sgl would properly
reset this value to zero for all requests. However, for requests that
return SPDK_NVME_DATA_NONE rom spdk_nvmf_rdma_request_get_xfer, this
funxtion is skipped and the value is never reset. This can cause a
coherency issue on admin queues when we request multiple log files. When
the keep_alive request is resent, it can pick up an old rdma_req which
reports the wrong number of outstanding_wrs and it will permanently
increment the qpairs curr_send_depth.

This change decrements num_outstanding_data_wrs on writes, and also
resets that value when the request is freed to ensure that this problem
doesn't occur again.

Change-Id: I5866af97c946a0a58c30507499b43359fb6d0f64
Signed-off-by: Seth Howell <seth.howell@intel.com>
Reviewed-on: https://review.gerrithub.io/c/443811 (master)
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/447462
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
2019-03-08 19:00:44 +00:00
..
bdev QoS: remove the limit on unmap kinds of I/O 2019-01-30 21:44:05 +00:00
blob lvol: add option to change default data erase method 2019-01-23 22:25:37 +00:00
blobfs blobfs: fix the length value of file. 2019-01-17 05:04:13 +00:00
conf string: spdk_strtol to delegate additional error checking 2019-01-29 00:10:57 +00:00
copy lib/copy: unregister copy engine on finish 2018-10-15 17:42:20 +00:00
env_dpdk OCF: use rte_pause in wait loop 2019-01-28 19:24:13 +00:00
event lib/trace: add trace_record tool 2019-01-30 06:36:25 +00:00
ftl ftl: verify LBA format is supported 2019-01-29 06:51:46 +00:00
ioat memory: replace all hardcoded 0x200000 with a define 2019-01-13 00:47:26 +00:00
iscsi iscsi: properly handle partial keys 2019-01-29 17:44:12 +00:00
json json_util: add debug logs to spdk_json_decode_object function 2019-01-10 14:31:37 +00:00
jsonrpc jsonrpc: support half closed connections 2019-01-23 22:26:16 +00:00
log app: rename traceflag cmdline option to logflag 2018-12-03 19:50:15 +00:00
lvol lvol: add option to change default data erase method 2019-01-23 22:25:37 +00:00
nbd nbd: fixup return codes 2018-11-28 22:55:09 +00:00
net lib: fix typos in the lib directory 2018-08-24 17:15:12 +00:00
nvme nvmf/tcp: Eliminate atoi use 2019-01-29 17:39:18 +00:00
nvmf rdma: properly account num_outstanding_data_wr 2019-03-08 19:00:44 +00:00
reduce reduce: mark correct number of backing pages for md 2019-01-17 19:43:28 +00:00
rocksdb thread: Rename spdk_allocate_thread to spdk_thread_create 2019-01-17 11:24:38 +00:00
rpc rpc: add spdk_rpc_is_method_allowed 2018-12-05 00:35:35 +00:00
scsi scsi: squash errlog for THIN_PROVISION INQUIRY page 2019-01-28 02:33:50 +00:00
sock UT: fix the sock_ut failure because of the port conflict 2019-01-22 17:28:24 +00:00
thread thread: Allow nested spdk_thread_poll calls 2019-01-21 13:54:46 +00:00
trace lib/trace: add trace_record tool 2019-01-30 06:36:25 +00:00
ut_mock thread: Eliminate use of pthread_self and thread_ids 2019-01-15 16:53:12 +00:00
util Update spdk crc32.c with ARM CRC32 intrinsics 2019-01-29 18:23:01 +00:00
vhost vhost/nvme: fix vhost-nvme target with session feature 2019-01-29 06:47:18 +00:00
virtio virtio: don't reinitialize entire virtqueues on mem hotplug 2019-01-28 18:56:52 +00:00
Makefile ftl: Initial implementation 2019-01-11 09:15:39 +00:00