+19
−31
Loading
This change provides a couple benefits: firstly, the task objects can be reused sooner, so the total number of tasks in use at a time is smaller. Secondly, it makes it possible to get rid of the completed task list, so the whole spdk_accel_sequence can now fit within a single cache line. The original reason for completing the tasks after finishing the whole sequence was to allow users to use the step_cb to free any resources (e.g. accel buffers) required to execute an operation. And, because those resources could be used by other operations in the sequence, those callbacks were delayed. However, no code is using it that way (step_cb is only utilized for crc32 calculation) and users can rely on other means to be notified that a sequence has been completed (e.g. bdev crypto frees its aux buffer after receiving completion from its base bdev). Signed-off-by:Konrad Sztyber <konrad.sztyber@intel.com> Change-Id: I00c83f92b69f8ed6a739ae06a31bcf42c44b5111 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/21291 Tested-by:
SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by:
Aleksey Marchuk <alexeymar@nvidia.com> Reviewed-by:
Jim Harris <jim.harris@samsung.com>