accel_perf: Add _free_task_buffers_in_pool function.

This function is used to eliminate the duplicated code.

Also rename _free_task to _free_task_buffers to make
it easy to understand the code.

Signed-off-by: Ziye Yang <ziye.yang@intel.com>
Change-Id: I2ef9dbbb81c12c229952f5590f616a17dc2fe087
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/6128
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Paul Luse <paul.e.luse@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Community-CI: Mellanox Build Bot
This commit is contained in:
Ziye Yang 2021-01-28 19:40:37 +08:00 committed by Tomasz Zawadzki
parent b34883e07b
commit e150f6b8b7

View File

@ -370,7 +370,7 @@ _batch_prep_cmd(struct worker_thread *worker, struct ap_task *task,
} }
static void static void
_free_task(struct ap_task *task) _free_task_buffers(struct ap_task *task)
{ {
spdk_dma_free(task->src); spdk_dma_free(task->src);
spdk_dma_free(task->dst); spdk_dma_free(task->dst);
@ -616,19 +616,27 @@ dump_result(void)
return total_failed ? 1 : 0; return total_failed ? 1 : 0;
} }
static inline void
_free_task_buffers_in_pool(struct worker_thread *worker)
{
struct ap_task *task;
assert(worker);
while ((task = TAILQ_FIRST(&worker->tasks_pool))) {
TAILQ_REMOVE(&worker->tasks_pool, task, link);
_free_task_buffers(task);
}
}
static int static int
_check_draining(void *arg) _check_draining(void *arg)
{ {
struct worker_thread *worker = arg; struct worker_thread *worker = arg;
struct ap_task *task;
assert(worker); assert(worker);
if (worker->current_queue_depth == 0) { if (worker->current_queue_depth == 0) {
while ((task = TAILQ_FIRST(&worker->tasks_pool))) { _free_task_buffers_in_pool(worker);
TAILQ_REMOVE(&worker->tasks_pool, task, link);
_free_task(task);
}
spdk_poller_unregister(&worker->is_draining_poller); spdk_poller_unregister(&worker->is_draining_poller);
unregister_worker(worker); unregister_worker(worker);
} }
@ -812,10 +820,8 @@ error:
TAILQ_REMOVE(&worker->in_use_batches, worker_batch, link); TAILQ_REMOVE(&worker->in_use_batches, worker_batch, link);
} }
} }
while ((task = TAILQ_FIRST(&worker->tasks_pool))) {
TAILQ_REMOVE(&worker->tasks_pool, task, link); _free_task_buffers_in_pool(worker);
_free_task(task);
}
free(worker->batch_base); free(worker->batch_base);
free(worker->task_base); free(worker->task_base);
free(worker); free(worker);