Spdk/lib/nvmf
Jim Harris bb926e803d nvmf: make poll groups count unassociated qpairs
We make decisions on how to pick a poll group for a new
qpair by looking at each poll group's current_io_qpairs
count.  But this count isn't always accurate since it
doesn't get updated until after the CONNECT has
been received.

This means that if we accept a bunch of connections
all at once, they may all get assigned the same poll
group, because the target poll groups counter doesn't
get immediately incremented.

So add a new counter, current_unassociated_qpairs,
to account for these qpairs.  We protect this counter
with a lock, since the accept thread will increment
the counter, and the poll group thread will
decrement it when the qpair receives the CONNECT
allowing us to associated with a subsystem/controller..

If the qpair gets destroyed before the CONNECT is
received, we can use the qpair->connect_received
flag to decrement current_unassociated_qpairs.

Signed-off-by: Jim Harris <james.r.harris@intel.com>
Change-Id: I8bba8da2abfe225b3b9f981cd71b6f49e2b87391
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15693
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
2022-12-01 10:57:29 +00:00
..
ctrlr_bdev.c nvmef: don't set optimal I/O boundary if write_unit_size != 1 2022-11-30 08:50:29 +00:00
ctrlr_discovery.c update Intel copyright notices 2022-11-10 08:28:53 +00:00
ctrlr.c nvmf: make poll groups count unassociated qpairs 2022-12-01 10:57:29 +00:00
fc_ls.c update Intel copyright notices 2022-11-10 08:28:53 +00:00
fc.c update Intel copyright notices 2022-11-10 08:28:53 +00:00
Makefile nvmf: Add copy command support 2022-11-30 08:50:06 +00:00
nvmf_fc.h update Intel copyright notices 2022-11-10 08:28:53 +00:00
nvmf_internal.h nvmf: Add copy command support 2022-11-30 08:50:06 +00:00
nvmf_rpc.c update Intel copyright notices 2022-11-10 08:28:53 +00:00
nvmf.c nvmf: make poll groups count unassociated qpairs 2022-12-01 10:57:29 +00:00
rdma.c update Intel copyright notices 2022-11-10 08:28:53 +00:00
spdk_nvmf.map nvmf: add spdk_nvmf_ctrlr_[save|restore]_migr_data() APIs 2022-09-20 10:17:24 +00:00
subsystem.c update Intel copyright notices 2022-11-10 08:28:53 +00:00
tcp.c update Intel copyright notices 2022-11-10 08:28:53 +00:00
transport.c update Intel copyright notices 2022-11-10 08:28:53 +00:00
transport.h update Intel copyright notices 2022-11-10 08:28:53 +00:00
vfio_user.c nvmf/vfio-user: drop thread from struct nvmf_vfio_user_cq 2022-11-30 08:47:31 +00:00