Spdk/lib
Tomasz Zawadzki 6301f8915d lib/sock: provide a hint to picking optimal poll group
The process of matching qpair to poll group is split into
two distinct parts that occur on different threads.
See spdk_nvmf_tgt_new_qpair().

This results in a race condition for TCP between spdk_sock_map_lookup()
and spdk_sock_map_insert(), which are called in spdk_nvmf_get_optimal_poll_group()
and spdk_nvmf_poll_group_add() respectively.

Fixes #2113

This patch picks a hint from nvmf_tcp for next poll group,
which is then passed down to spdk_sock_map_lookup().

When matching placement_id exists, but does not have
a poll group assigned - the hint will be used.

Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Change-Id: I4abde2bc9c39225c9f5dd7c3654fa2639bb0a27f
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/10271
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
2022-04-01 12:41:26 +00:00
..
accel lib/accel: remove public API for getting capabilities 2022-03-31 09:36:25 +00:00
bdev bdev: add timeout option to bdev_get_bdevs RPC 2022-03-30 08:02:08 +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 lib/sock: provide a hint to picking optimal poll group 2022-04-01 12:41:26 +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