examples/accel_perf: move a code block in prep for upcoming patches
Signed-off-by: paul luse <paul.e.luse@intel.com> Change-Id: Ic3b611469091fe1a1a57f51c412dc84212666c54 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/5490 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Mellanox Build Bot Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
This commit is contained in:
parent
cdefd3d3f8
commit
8da995c4fb
@ -192,6 +192,55 @@ unregister_worker(void *arg1)
|
|||||||
pthread_mutex_unlock(&g_workers_lock);
|
pthread_mutex_unlock(&g_workers_lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
_get_task_data_bufs(struct ap_task *task)
|
||||||
|
{
|
||||||
|
uint32_t align = 0;
|
||||||
|
|
||||||
|
/* For dualcast, the DSA HW requires 4K alignment on destination addresses but
|
||||||
|
* we do this for all engines to keep it simple.
|
||||||
|
*/
|
||||||
|
if (g_workload_selection == ACCEL_DUALCAST) {
|
||||||
|
align = ALIGN_4K;
|
||||||
|
}
|
||||||
|
|
||||||
|
task->src = spdk_dma_zmalloc(g_xfer_size_bytes, 0, NULL);
|
||||||
|
if (task->src == NULL) {
|
||||||
|
fprintf(stderr, "Unable to alloc src buffer\n");
|
||||||
|
return -ENOMEM;
|
||||||
|
}
|
||||||
|
memset(task->src, DATA_PATTERN, g_xfer_size_bytes);
|
||||||
|
|
||||||
|
task->dst = spdk_dma_zmalloc(g_xfer_size_bytes, align, NULL);
|
||||||
|
if (task->dst == NULL) {
|
||||||
|
fprintf(stderr, "Unable to alloc dst buffer\n");
|
||||||
|
return -ENOMEM;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* For compare we want the buffers to match, otherwise not. */
|
||||||
|
if (g_workload_selection == ACCEL_COMPARE) {
|
||||||
|
memset(task->dst, DATA_PATTERN, g_xfer_size_bytes);
|
||||||
|
} else {
|
||||||
|
memset(task->dst, ~DATA_PATTERN, g_xfer_size_bytes);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* For fill, set the entire src buffer so we can check if verify is enabled. */
|
||||||
|
if (g_workload_selection == ACCEL_FILL) {
|
||||||
|
memset(task->src, g_fill_pattern, g_xfer_size_bytes);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (g_workload_selection == ACCEL_DUALCAST) {
|
||||||
|
task->dst2 = spdk_dma_zmalloc(g_xfer_size_bytes, align, NULL);
|
||||||
|
if (task->dst2 == NULL) {
|
||||||
|
fprintf(stderr, "Unable to alloc dst buffer\n");
|
||||||
|
return -ENOMEM;
|
||||||
|
}
|
||||||
|
memset(task->dst2, ~DATA_PATTERN, g_xfer_size_bytes);
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static void accel_done(void *ref, int status);
|
static void accel_done(void *ref, int status);
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -408,55 +457,6 @@ _init_thread_done(void *ctx)
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
|
||||||
_get_task_data_bufs(struct ap_task *task)
|
|
||||||
{
|
|
||||||
uint32_t align = 0;
|
|
||||||
|
|
||||||
/* For dualcast, the DSA HW requires 4K alignment on destination addresses but
|
|
||||||
* we do this for all engines to keep it simple.
|
|
||||||
*/
|
|
||||||
if (g_workload_selection == ACCEL_DUALCAST) {
|
|
||||||
align = ALIGN_4K;
|
|
||||||
}
|
|
||||||
|
|
||||||
task->src = spdk_dma_zmalloc(g_xfer_size_bytes, 0, NULL);
|
|
||||||
if (task->src == NULL) {
|
|
||||||
fprintf(stderr, "Unable to alloc src buffer\n");
|
|
||||||
return -ENOMEM;
|
|
||||||
}
|
|
||||||
memset(task->src, DATA_PATTERN, g_xfer_size_bytes);
|
|
||||||
|
|
||||||
task->dst = spdk_dma_zmalloc(g_xfer_size_bytes, align, NULL);
|
|
||||||
if (task->dst == NULL) {
|
|
||||||
fprintf(stderr, "Unable to alloc dst buffer\n");
|
|
||||||
return -ENOMEM;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* For compare we want the buffers to match, otherwise not. */
|
|
||||||
if (g_workload_selection == ACCEL_COMPARE) {
|
|
||||||
memset(task->dst, DATA_PATTERN, g_xfer_size_bytes);
|
|
||||||
} else {
|
|
||||||
memset(task->dst, ~DATA_PATTERN, g_xfer_size_bytes);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* For fill, set the entire src buffer so we can check if verify is enabled. */
|
|
||||||
if (g_workload_selection == ACCEL_FILL) {
|
|
||||||
memset(task->src, g_fill_pattern, g_xfer_size_bytes);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (g_workload_selection == ACCEL_DUALCAST) {
|
|
||||||
task->dst2 = spdk_dma_zmalloc(g_xfer_size_bytes, align, NULL);
|
|
||||||
if (task->dst2 == NULL) {
|
|
||||||
fprintf(stderr, "Unable to alloc dst buffer\n");
|
|
||||||
return -ENOMEM;
|
|
||||||
}
|
|
||||||
memset(task->dst2, ~DATA_PATTERN, g_xfer_size_bytes);
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
_batch_prep_cmd(struct worker_thread *worker, struct ap_task *task, struct spdk_accel_batch *batch)
|
_batch_prep_cmd(struct worker_thread *worker, struct ap_task *task, struct spdk_accel_batch *batch)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user