Spdk/test
paul luse 33eac886b9 lib/idxd: refactor batching for increased performance
And to eliminate an artificial constraint on # of user descriptors.
The main idea here was to move from a single ring that covered all
user descriptors to a pre-allocated ring per pre-allocated batch.

In addition, the other major change here is in how we poll for
completions.  We used to poll the batch rings then the main ring.
Now when commands are prepared their completion address is added to
a per channel list and the poller simply runs through that list
not caring which ring the completion address belongs too. This
simplifies the completion logic considerably and will avoid
polling locations that can't potentially have a completion.

Some minor rework was included as well, mainly getting rid of the
ring_ctrl struct as it didn't serve much of a purpose anyway and
with how things are setup now its easier to read with all the
elements in the channel struct.

Also, a change that came in while this was WIP needed a few fixes
to function correctly.  Addressed those and moved them to a
helper function so we have one point of control for xlations.

Added support for NOP in cases where a batch is submitted with
only 1 descriptor.

Signed-off-by: paul luse <paul.e.luse@intel.com>
Change-Id: Ie201b28118823100e908e0d1b08e7c10bb8fa9e7
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/3654
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
2020-10-22 22:43:28 +00:00
..
app test/app: Use spdk_nvme_detach_async() and spdk_nvme_detach_poll_async() 2020-10-20 16:55:55 +00:00
bdev script/gen_nvme: do not generate legacy configuration 2020-10-22 17:08:41 +00:00
blobfs script/gen_nvme: do not generate legacy configuration 2020-10-22 17:08:41 +00:00
blobstore script/gen_nvme: do not generate legacy configuration 2020-10-22 17:08:41 +00:00
common script/gen_nvme: do not generate legacy configuration 2020-10-22 17:08:41 +00:00
compress script/gen_nvme: do not generate legacy configuration 2020-10-22 17:08:41 +00:00
config_converter vhost: deprecate internal vhost library support 2020-10-20 02:42:16 +00:00
cpp_headers queue_extras: use SPDK_CONTAINEROF 2019-10-07 15:06:01 +00:00
dd test/dd: Lower the number of block size tests 2020-08-20 09:27:21 +00:00
dpdk_memory_utility build: Output executables from the app directory to build/bin 2020-06-15 15:27:16 +00:00
env test/memory_ut: fix clang compilation error 2020-10-19 09:54:32 +00:00
event event: remove printing legacy config for apps 2020-10-21 20:44:47 +00:00
external_code test/external_code: replace copies of test apps with symbolic links 2020-10-21 20:46:20 +00:00
ftl script/gen_nvme: do not generate legacy configuration 2020-10-22 17:08:41 +00:00
fuzz test/iscsi: remove VPP tests 2020-08-17 08:19:46 +00:00
ioat build: Example applications build to build/example 2020-06-15 15:27:16 +00:00
iscsi_tgt script/gen_nvme: do not generate legacy configuration 2020-10-22 17:08:41 +00:00
json_config script/gen_nvme: do not generate legacy configuration 2020-10-22 17:08:41 +00:00
lvol test/lvol: rename lvol test script 2020-10-20 08:54:53 +00:00
make blob/bdev: Add function pointer get_base_bdev to struct spdk_bs_dev 2020-10-20 08:52:29 +00:00
nvme test/nvme: Use spdk_nvme_detach_async() and spdk_nvme_detach_poll_async() 2020-10-20 16:55:55 +00:00
nvmf script/gen_nvme: do not generate legacy configuration 2020-10-22 17:08:41 +00:00
ocf script/gen_nvme: do not generate legacy configuration 2020-10-22 17:08:41 +00:00
openstack script/gen_nvme: do not generate legacy configuration 2020-10-22 17:08:41 +00:00
pmem build: Output executables from the app directory to build/bin 2020-06-15 15:27:16 +00:00
rpc build: Output executables from the app directory to build/bin 2020-06-15 15:27:16 +00:00
rpc_client lib/event: fix printing non-null-terminated strings 2020-04-06 07:48:37 +00:00
spdkcli script/gen_nvme: do not generate legacy configuration 2020-10-22 17:08:41 +00:00
unit lib/idxd: refactor batching for increased performance 2020-10-22 22:43:28 +00:00
vhost script/gen_nvme: do not generate legacy configuration 2020-10-22 17:08:41 +00:00
vmd build: Example applications build to build/example 2020-06-15 15:27:16 +00:00
Makefile build: add option to disable building unit tests 2020-03-10 09:12:21 +00:00
spdk_cunit.h test: remove leftover spdk_cunit declaration 2018-07-06 22:47:56 +00:00