Commit befbf7ca authored by paul luse's avatar paul luse Committed by Tomasz Zawadzki
Browse files

examples/idxd_perf: add copy+crc32C support



Someone had it partially in there but never finished it. Likely copy
and pasted most, but not all of it, from accel_perf long ago...

Signed-off-by: default avatarpaul luse <paul.e.luse@intel.com>
Change-Id: I4f8bada5cb7c7fd5aea4487eef54f40432dde498
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/12610


Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Community-CI: Mellanox Build Bot
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarBen Walker <benjamin.walker@intel.com>
Reviewed-by: default avatarTomasz Zawadzki <tomasz.zawadzki@intel.com>
parent 69fb9769
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -459,7 +459,7 @@ _get_task_data_bufs(struct idxd_task *task)
		}
	}

	if (g_workload_selection != IDXD_COPY_CRC32C) {
	if (g_workload_selection != IDXD_CRC32C) {
		task->dst = spdk_dma_zmalloc(dst_buff_len, align, NULL);
		if (task->dst == NULL) {
			fprintf(stderr, "Unable to alloc dst buffer\n");
@@ -574,10 +574,16 @@ _submit_single(struct idxd_chan_entry *t, struct idxd_task *task)
		rc = spdk_idxd_submit_dualcast(t->ch, task->dst, task->dst2,
					       task->src, g_xfer_size_bytes, flags, idxd_done, task);
		break;
	case IDXD_COPY_CRC32C:
		diov.iov_base = task->dst;
		diov.iov_len = g_xfer_size_bytes;
		rc = spdk_idxd_submit_copy_crc32c(t->ch, &diov, 1, task->iovs, task->iov_cnt, g_crc32c_seed,
						  &task->crc_dst,
						  flags, idxd_done, task);
		break;
	default:
		assert(false);
		break;

	}

queue: