bdevperf: Gather all of the job construction code into a single function

Keep it all in one place to make it easier to see.

Change-Id: I8c2cc1b5da8ce431d7b1b5546440324db169e09c
Signed-off-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/1509
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Paul Luse <paul.e.luse@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com>
This commit is contained in:
Ben Walker 2020-03-23 14:10:51 -07:00 committed by Tomasz Zawadzki
parent 59e40e0203
commit f1dede62a3

View File

@ -1070,6 +1070,22 @@ bdevperf_construct_job(struct spdk_io_channel_iter *i)
return;
}
block_size = spdk_bdev_get_block_size(ctx->bdev);
data_block_size = spdk_bdev_get_data_block_size(ctx->bdev);
if (g_unmap && !spdk_bdev_io_type_supported(ctx->bdev, SPDK_BDEV_IO_TYPE_UNMAP)) {
printf("Skipping %s because it does not support unmap\n", spdk_bdev_get_name(ctx->bdev));
spdk_for_each_channel_continue(i, -ENOTSUP);
return;
}
if ((g_io_size % data_block_size) != 0) {
SPDK_ERRLOG("IO size (%d) is not multiples of data block size of bdev %s (%"PRIu32")\n",
g_io_size, spdk_bdev_get_name(ctx->bdev), data_block_size);
spdk_for_each_channel_continue(i, -ENOTSUP);
return;
}
job = calloc(1, sizeof(struct bdevperf_job));
if (!job) {
fprintf(stderr, "Unable to allocate memory for new job.\n");
@ -1096,8 +1112,6 @@ bdevperf_construct_job(struct spdk_io_channel_iter *i)
job->bdev = bdev;
block_size = spdk_bdev_get_block_size(bdev);
data_block_size = spdk_bdev_get_data_block_size(bdev);
job->io_size_blocks = g_io_size / data_block_size;
job->buf_size = job->io_size_blocks * block_size;
@ -1209,21 +1223,8 @@ get_next_bdevperf_reactor(void)
static void
_bdevperf_construct_jobs(struct spdk_bdev *bdev)
{
uint32_t data_block_size;
struct construct_jobs_ctx *ctx;
if (g_unmap && !spdk_bdev_io_type_supported(bdev, SPDK_BDEV_IO_TYPE_UNMAP)) {
printf("Skipping %s because it does not support unmap\n", spdk_bdev_get_name(bdev));
return;
}
data_block_size = spdk_bdev_get_data_block_size(bdev);
if ((g_io_size % data_block_size) != 0) {
SPDK_ERRLOG("IO size (%d) is not multiples of data block size of bdev %s (%"PRIu32")\n",
g_io_size, spdk_bdev_get_name(bdev), data_block_size);
return;
}
ctx = calloc(1, sizeof(*ctx));
if (ctx == NULL) {
return;