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 __thread unsigned int seed = 0;
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -528,7 +539,6 @@ bdevperf_submit_task(void *arg)
|
|||||||
struct spdk_bdev_desc *desc;
|
struct spdk_bdev_desc *desc;
|
||||||
struct spdk_io_channel *ch;
|
struct spdk_io_channel *ch;
|
||||||
spdk_bdev_io_completion_cb cb_fn;
|
spdk_bdev_io_completion_cb cb_fn;
|
||||||
void *rbuf;
|
|
||||||
int rc = 0;
|
int rc = 0;
|
||||||
|
|
||||||
desc = target->bdev_desc;
|
desc = target->bdev_desc;
|
||||||
@ -558,9 +568,13 @@ bdevperf_submit_task(void *arg)
|
|||||||
target->io_size_blocks, bdevperf_complete, task);
|
target->io_size_blocks, bdevperf_complete, task);
|
||||||
break;
|
break;
|
||||||
case SPDK_BDEV_IO_TYPE_READ:
|
case SPDK_BDEV_IO_TYPE_READ:
|
||||||
rbuf = g_zcopy ? NULL : task->buf;
|
if (g_zcopy) {
|
||||||
rc = spdk_bdev_read_blocks(desc, ch, rbuf, task->offset_blocks,
|
rc = spdk_bdev_zcopy_start(desc, ch, task->offset_blocks, target->io_size_blocks,
|
||||||
target->io_size_blocks, bdevperf_complete, task);
|
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;
|
break;
|
||||||
default:
|
default:
|
||||||
assert(false);
|
assert(false);
|
||||||
|
Loading…
Reference in New Issue
Block a user