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> |
||
---|---|---|
.. | ||
accel_dpdk_cryptodev_rpc.c | ||
accel_dpdk_cryptodev.c | ||
accel_dpdk_cryptodev.h | ||
Makefile |