Spdk/include/spdk_internal
paul luse 17bb748a60 accel: Move non-engine specific batch to the accel_fw layer
The new design:

* Supports a generic batching capability in the accel_fw layer
that keeps track of hw accelerated vs sw commands based on
the capabilities of the engine and processes sw commands in the
generic layer while sending a list of commands (not a batch)
to the engines for processing.

* Batch completions are managed via the generic layer, when using
the accel_fw the engines only process commands. With DSA however,
if a list of commands is sent down it will use the DSA public
API to create and send batches but will rely on the generic layer
to complete the batch task itself. When using DSA directly, batching
works as usual (DSA handles batch completion).

* The engine function tables were greatly simplified by replacing
all of the individual entries (copy, fill, crc32c, etc) with one
`submit_tasks` function that is used to both send lists of tasks
for batches or just one task for single shot API.

* Internally batching is now used to re-submit tasks that were queued
for flow control reasons.

Signed-off-by: paul luse <paul.e.luse@intel.com>
Change-Id: I99c28751df32017c43490a90f4904bdabe79a270
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/3555
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Community-CI: Mellanox Build Bot
2020-10-22 22:43:28 +00:00
..
accel_engine.h accel: Move non-engine specific batch to the accel_fw layer 2020-10-22 22:43:28 +00:00
assert.h include: Move the remainder of the code base to stdinc.h 2017-05-08 13:20:36 -07:00
event.h event: remove subsystem legacy config print 2020-10-21 02:25:45 +00:00
idxd.h lib/idxd: implement idxd back end for CRC 2020-05-15 08:12:13 +00:00
lvolstore.h lvol: remove lvol_task structure 2020-04-24 15:45:21 +00:00
mock.h test: add generic unlink wrapper 2020-05-06 12:43:57 +00:00
nvme_tcp.h nvme_tcp: Move the default buffer factor size in nvme_tcp.h 2020-07-22 12:21:07 +00:00
rdma.h rdma: Add new API spdk_rdma_qp_accept 2020-06-18 07:28:04 +00:00
sock.h sock: Remove unused spdk_sock::max_iovcnt 2020-09-29 09:35:47 +00:00
thread.h lib/thread: Cleanup thread structure 2020-04-14 11:33:05 +00:00
uring.h bdev/uring: Do not use IORING_SETUP_IOPOLL. 2020-08-04 18:27:56 +00:00
utf.h utf.h: remove #include "spdk/json.h" 2018-01-31 14:37:16 -05:00
vhost_user.h vhost_user: add VHOST_USER_PROTOCOL_F_INFLIGHT_SHMFD definition 2020-01-13 12:43:16 +00:00
virtio.h log: remove internal log.h header 2020-10-15 08:23:39 +00:00