Spdk/test/unit/lib
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
..
bdev bdev/lvol: Pass bdev name instead of bdev pointer to vbdev_lvs_create 2020-10-20 08:52:29 +00:00
blob lib/blob: extent_page shall never occupy md page 0 2020-10-16 08:15:16 +00:00
blobfs blobfs_bdev: Use spdk_bdev_create_bs_dev_ext() instead of spdk_bdev_create_bs_dev_from_desc() 2020-10-20 08:52:29 +00:00
event lib/event: remove legacy configuration from event framework 2020-10-22 17:08:41 +00:00
ftl lib/ftl: Keep tracing functions under define flag 2020-06-05 09:03:31 +00:00
idxd lib/idxd: refactor batching for increased performance 2020-10-22 22:43:28 +00:00
ioat ut: make use of CUnit macro to reduce duplications 2020-04-02 14:50:12 +00:00
iscsi subsystem/iscsi: remove legacy config support 2020-10-20 08:53:53 +00:00
json json: add spdk_json_free_object() 2020-10-19 10:02:10 +00:00
jsonrpc lib/jsonrpc: remove spdk_ prefix from internal functions. 2020-05-11 12:29:07 +00:00
log log: simplify SPDK_LOG_REGISTER_COMPONENT 2020-10-14 08:00:35 +00:00
lvol lvol: let thin_provision flag be consistent with Blob 2020-05-22 10:42:28 +00:00
notify ut: make use of CUnit macro to reduce duplications 2020-04-02 14:50:12 +00:00
nvme lib/nvme: Make internal of spdk_nvme_detach() asynchronous 2020-10-20 16:55:55 +00:00
nvmf unit: add a UT for the get_ana_log_page 2020-10-22 03:56:35 +00:00
reduce test: add generic unlink wrapper 2020-05-06 12:43:57 +00:00
scsi log: simplify SPDK_LOG_REGISTER_COMPONENT 2020-10-14 08:00:35 +00:00
sock ut/sock: Add get/set_opts unit tests for posix sockets 2020-06-02 09:48:00 +00:00
thread lib/thread: remove _spdk prefix. 2020-06-01 13:07:30 +00:00
util cpuset: fix parse_mask 2020-08-27 08:34:07 +00:00
vhost vhost: deprecate internal vhost library support 2020-10-20 02:42:16 +00:00
json_mock.c subsystem: add per module configuration dump 2018-03-23 02:47:40 -04:00
Makefile lib/idxd: add unit test framework and first unit test 2020-04-23 15:48:32 +00:00