Spdk/module/accel/dpdk_cryptodev
Alexey Marchuk 8f36853a84 dpdk_cryptodev: Check queue capacity before submitting a task
When we submit more tasks than supported by qp,
extra tasks are queued on io_channel. Later completion
poller tries to resubmit these tasks one by one. That
is not efficient since every enqueu_burst may cause
doorbell updates in HW.

Instead add a check for qpir capacity and submit
appropriate number of requests. If qpair is full,
tasks are queued in dedicated list. This approach
should remove or minimize the need to resubmit
individual crypto operations.

This also handles a case where there are no entries
in global pools (crypto_ops or rte_mbuf)

Fixes issue #2756

Signed-off-by: Alexey Marchuk <alexeymar@nvidia.com>
Change-Id: Iab50e623e7a82a4f5bef7a1e4434e593240ab633
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15769
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>
Reviewed-by: Paul Luse <paul.e.luse@intel.com>
2023-01-18 18:19:50 +00:00
..
accel_dpdk_cryptodev_rpc.c module/accel: Add accel_dpdk_cryptodev 2023-01-11 09:16:59 +00:00
accel_dpdk_cryptodev.c dpdk_cryptodev: Check queue capacity before submitting a task 2023-01-18 18:19:50 +00:00
accel_dpdk_cryptodev.h module/accel: Add accel_dpdk_cryptodev 2023-01-11 09:16:59 +00:00
Makefile module/accel: Add accel_dpdk_cryptodev 2023-01-11 09:16:59 +00:00