Spdk/lib
Wenhua Liu a4340e4501 Set low watermark in NVMe/TCP target to a more appropriate value.
In SPDK NVMe/TCP target, when initializing the socket, the low
watermark is set to sizeof(struct spdk_nvme_tcp_common_pdu_hdr),
which is 24 bytes. In our testing, some times there might be very
small data packet (as small as 16 bytes) be sent to wire. After
this, if there is no more data sent to the same socket, this small
data packet won’t be received by NVMe/TCP controller qpair thread
because the size hasn’t reached the low watermark. Because of this,
the qpair thread is waiting for more data come in and the initiator
is waiting for the IO request to be completed. Hence the delay
happens.

As the minimum data that allows target to determine the PDU type is
sizeof(struct spdk_nvme_tcp_common_pdu_hdr), which is 8 bytes, we
changed low watermark setting as below. With the change, the problem
was gone immediately.

Change-Id: I14ccc4c84b77e33a617726e7455304aca29d5d57
Signed-off-by: Wenhua Liu <liuw@vmware.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/2138
Community-CI: Mellanox Build Bot
Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Ziye Yang <ziye.yang@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
2020-05-06 12:44:06 +00:00
..
accel accel: Add/update prints so user knows which engine is in use 2020-04-30 17:51:19 +00:00
bdev lib/bdev: add a map file. 2020-04-15 22:10:08 +00:00
blob blob: add pages_per_cluster_shift 2020-04-24 15:45:21 +00:00
blobfs lib/blobfs: remove spdk prefix from private APIs 2020-04-22 09:21:55 +00:00
conf lib/conf: make INI deprecation less verbose 2020-04-28 13:36:35 +00:00
env_dpdk module/idxd: accel framework plug-in for idxd 2020-04-23 15:48:32 +00:00
env_ocf lib/ocf_env: fix incorrect value for free memory estimate 2020-04-29 06:42:33 +00:00
event reactor: add an assert for thread context. 2020-04-24 07:07:43 +00:00
ftl ftl: remove duplicated spdk_ftl_init_fn typedef 2020-05-06 12:43:57 +00:00
idxd idxd: clean up some enum style issues for consistency 2020-04-30 17:51:19 +00:00
ioat memory.h: move to public headers 2020-03-19 08:50:45 +00:00
iscsi lib/iscsi: fix possible memory leak. 2020-04-24 07:07:43 +00:00
json make: rev SO versions individually for libraries. 2020-03-18 08:02:30 +00:00
jsonrpc make: rev SO versions individually for libraries. 2020-03-18 08:02:30 +00:00
log log: spdk_log_dump more characters than required 2020-04-14 11:34:45 +00:00
log_rpc make: rev SO versions individually for libraries. 2020-03-18 08:02:30 +00:00
lvol lvol: do not refer to blob when create returned error 2020-04-02 07:03:35 +00:00
nbd lib/thread: Use function name as poller name by using macro SPDK_POLLER_REGISTER 2020-04-15 07:23:09 +00:00
net make: rev SO versions individually for libraries. 2020-03-18 08:02:30 +00:00
notify make: rev SO versions individually for libraries. 2020-03-18 08:02:30 +00:00
nvme nvme/rdma: When RDMA hooks exist, prefer spdk_zmalloc for internal 2020-05-05 08:03:39 +00:00
nvmf Set low watermark in NVMe/TCP target to a more appropriate value. 2020-05-06 12:44:06 +00:00
reduce make: rev SO versions individually for libraries. 2020-03-18 08:02:30 +00:00
rocksdb global: rename copy to accel 2020-02-18 08:05:34 +00:00
rpc make: rev SO versions individually for libraries. 2020-03-18 08:02:30 +00:00
rte_vhost make: rev SO versions individually for libraries. 2020-03-18 08:02:30 +00:00
scsi lib/scsi: add map file 2020-04-24 07:06:52 +00:00
sock sock: Add spdk sock opts related three functions. 2020-04-24 15:53:34 +00:00
thread lib/thread: Add busy count for poller to increment only when some work was done 2020-04-09 13:44:14 +00:00
trace make: rev SO versions individually for libraries. 2020-03-18 08:02:30 +00:00
ut_mock test: add generic unlink wrapper 2020-05-06 12:43:57 +00:00
util pipe: Simplify the pipe code 2020-03-31 07:59:26 +00:00
vhost lib/vhost: Don't dereference svdev->name in dev_remove. 2020-04-29 06:38:53 +00:00
virtio memory.h: move to public headers 2020-03-19 08:50:45 +00:00
vmd make: rev SO versions individually for libraries. 2020-03-18 08:02:30 +00:00
Makefile lib/idxd: add low level idxd library 2020-04-23 15:48:32 +00:00