bdevperf: Use new zcopy API for reads
Change-Id: I71023d56f9023f46ff65291d22b1b8d31595a7b5 Signed-off-by: Ben Walker <benjamin.walker@intel.com> Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/416579 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com> Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> Reviewed-by: Jim Harris <james.r.harris@intel.com>
This commit is contained in:
parent
946ef1dc47
commit
14bf912df9
@ -449,6 +449,17 @@ bdevperf_verify_write_complete(struct spdk_bdev_io *bdev_io, bool success,
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
bdevperf_zcopy_complete(struct spdk_bdev_io *bdev_io, bool success, void *cb_arg)
|
||||
{
|
||||
if (!success) {
|
||||
bdevperf_complete(bdev_io, success, cb_arg);
|
||||
return;
|
||||
}
|
||||
|
||||
spdk_bdev_zcopy_end(bdev_io, false, bdevperf_complete, cb_arg);
|
||||
}
|
||||
|
||||
static __thread unsigned int seed = 0;
|
||||
|
||||
static void
|
||||
@ -528,7 +539,6 @@ bdevperf_submit_task(void *arg)
|
||||
struct spdk_bdev_desc *desc;
|
||||
struct spdk_io_channel *ch;
|
||||
spdk_bdev_io_completion_cb cb_fn;
|
||||
void *rbuf;
|
||||
int rc = 0;
|
||||
|
||||
desc = target->bdev_desc;
|
||||
@ -558,9 +568,13 @@ bdevperf_submit_task(void *arg)
|
||||
target->io_size_blocks, bdevperf_complete, task);
|
||||
break;
|
||||
case SPDK_BDEV_IO_TYPE_READ:
|
||||
rbuf = g_zcopy ? NULL : task->buf;
|
||||
rc = spdk_bdev_read_blocks(desc, ch, rbuf, task->offset_blocks,
|
||||
target->io_size_blocks, bdevperf_complete, task);
|
||||
if (g_zcopy) {
|
||||
rc = spdk_bdev_zcopy_start(desc, ch, task->offset_blocks, target->io_size_blocks,
|
||||
true, bdevperf_zcopy_complete, task);
|
||||
} else {
|
||||
rc = spdk_bdev_read_blocks(desc, ch, task->buf, task->offset_blocks,
|
||||
target->io_size_blocks, bdevperf_complete, task);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
assert(false);
|
||||
|
Loading…
Reference in New Issue
Block a user