| 9c636a02 | 12-Feb-2023 |
Alexey Marchuk <alexeymar@nvidia.com> |
accel/dpdk_cryptodev: Remove queued_cry_ops
If we were not able to submit all configured crypto ops, then we can just release crypto_ops and mbuf object of these crypto ops and save the actual numbe
accel/dpdk_cryptodev: Remove queued_cry_ops
If we were not able to submit all configured crypto ops, then we can just release crypto_ops and mbuf object of these crypto ops and save the actual number of submitted operation in the accel task. Once all submitted operations complete, poller will call accel_dpdk_cryptodev_process_task func to submit cyrpto operations for reamining data blocks. If no crypto ops were submitted then the task will be palced in the channel's queued_tasks and poller will try to resubmit the task. That in theory should increase performance since we attempted to resubmit queued ops with burst size==1 which is not efficient
Fixes issue #2907
Signed-off-by: Alexey Marchuk <alexeymar@nvidia.com> Change-Id: I4d17e8ed1ad5383848e4d09c46009c6cb2834360 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/16784 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Community-CI: Mellanox Build Bot Reviewed-by: Jim Harris <james.r.harris@intel.com>
show more ...
|
| 8f36853a | 02-Dec-2022 |
Alexey Marchuk <alexeymar@nvidia.com> |
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 ta
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>
show more ...
|
| bf8e0656 | 02-Dec-2022 |
Alexey Marchuk <alexeymar@nvidia.com> |
dpdk_cryptodev: Remove limit on max IO size
Previously vbdev_crypto used DPDK directly and the restriction on max IO size was propagated to generic bdev layer which split big IO requests.
Now, when
dpdk_cryptodev: Remove limit on max IO size
Previously vbdev_crypto used DPDK directly and the restriction on max IO size was propagated to generic bdev layer which split big IO requests.
Now, when DPDK code is a standalone accel module, this restriction on max IO size is not visible to the user and we should get rid of it.
To remove this limitation, allow to submit crypto operations for part of logical blocks in big IO, the rest blocks will be processed when all submitted crypto ops are completed.
To verify this patch, add a functional test which submits big IO verify mode
Signed-off-by: Alexey Marchuk <alexeymar@nvidia.com> Change-Id: I0ee89e98195a5c744f3fb2bfc752b578965c3bc5 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15768 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com>
show more ...
|