Commit f1dede62 authored by Ben Walker's avatar Ben Walker Committed by Tomasz Zawadzki
Browse files

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: default avatarBen Walker <benjamin.walker@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/1509


Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarShuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
Reviewed-by: default avatarPaul Luse <paul.e.luse@intel.com>
Reviewed-by: default avatarAleksey Marchuk <alexeymar@mellanox.com>
parent 59e40e02
Loading
Loading
Loading
Loading
+16 −15
Original line number Diff line number Diff line
@@ -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;