Spdk/module
paul luse 10808e45d4 idxd: refactor flow control for idxd engine
Recent work identified race conditions having to do with the
dynamic flow control mechanism for the idxd engine. In order
to both address the issue and simplify the code a new scheme
is now in place.  Essentially every DSA device will be allowed
to accomodate 8 channels and each channel will get a fixed 1/8
the number of work queue entries regardless of how many
channels there are.  Assignment of channels to devices is round
robin and if/when no more channels can be accommodated the get
channel request will fail.

The performance tests also revealed another issue that was
masked before, it's a one-line so is in this patch for convenience.
In the idxd poller we limit the number of completions allowed
during one run to avoid the poller thread from starving other
threads since as operations complete on this thread they are
immediately replaced up to the limit for the channel.

Signed-off-by: paul luse <paul.e.luse@intel.com>
Change-Id: I913e809a934b562feb495815a9b9c605d622285c
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/8171
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
2021-06-29 00:46:25 +00:00
..
accel idxd: refactor flow control for idxd engine 2021-06-29 00:46:25 +00:00
bdev bdev/nvme: Rename nvme_bdev_ctrlr_destruct() by nvme_bdev_ctrlr_release() 2021-06-17 09:21:27 +00:00
blob module/blob/bdev: use __SPDK_BDEV_MODULE_ONLY 2021-05-11 11:57:01 +00:00
blobfs blobfs: check return value of strdup in blobfs_fuse_start() 2021-06-16 08:53:21 +00:00
env_dpdk so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
event nvmf: allow poll groups to run on a subset of cores 2021-06-08 08:27:37 +00:00
sock uring: set fd to -1 after close(fd) in uring_sock_create() 2021-06-22 00:11:32 +00:00
Makefile build: install generated pkg-config files 2021-03-17 11:10:45 +00:00