Commit 88ce5f07 authored by Konrad Sztyber's avatar Konrad Sztyber Committed by Tomasz Zawadzki
Browse files

bdevperf: store md_buf size in struct bdevperf_job



We're going to need it in a few more places in the next patch.

Note that we use spdk_bdev_get_md_size() in place of
spdk_bdev_desc_get_md_size() to allocate task->md_buf.  This is fine,
because we first check spdk_bdev_desc_is_md_separate() in which case
both functions return the same value.

Change-Id: Ib36303cc9a83025efd61bbbe1d93c9a5496aa019
Signed-off-by: default avatarKonrad Sztyber <ksztyber@nvidia.com>
Reviewed-on: https://review.spdk.io/c/spdk/spdk/+/26225


Reviewed-by: default avatarJim Harris <jim.harris@nvidia.com>
Tested-by: default avatarSPDK Automated Test System <spdkbot@gmail.com>
Reviewed-by: default avatarBen Walker <ben@nvidia.com>
Community-CI: Mellanox Build Bot
parent 38a06717
Loading
Loading
Loading
Loading
+5 −4
Original line number Diff line number Diff line
@@ -167,6 +167,7 @@ struct bdevperf_job {
	uint64_t			offset_in_ios;
	uint64_t			io_size_blocks;
	uint64_t			buf_size;
	uint64_t			md_buf_size;
	uint32_t			dif_check_flags;
	bool				is_draining;
	bool				md_check;
@@ -1905,6 +1906,7 @@ bdevperf_construct_job(struct spdk_bdev *bdev, struct job_config *config,
	job->bdev = bdev;
	job->io_size_blocks = job->io_size / data_block_size;
	job->buf_size = job->io_size_blocks * block_size;
	job->md_buf_size = spdk_bdev_get_md_size(bdev) * job->io_size_blocks;
	job->abort = g_abort;
	job_init_rw(job, config->rw);
	job->md_check = spdk_bdev_get_dif_type(job->bdev) == SPDK_DIF_DISABLE;
@@ -2032,7 +2034,7 @@ bdevperf_construct_job(struct spdk_bdev *bdev, struct job_config *config,
			}

			if (spdk_bdev_is_md_separate(job->bdev)) {
				task->verify_md_buf = spdk_zmalloc(spdk_bdev_get_md_size(bdev) * job->io_size_blocks,
				task->verify_md_buf = spdk_zmalloc(job->md_buf_size,
								   spdk_bdev_get_buf_align(job->bdev), NULL, numa_id, SPDK_MALLOC_DMA);
				if (!task->verify_md_buf) {
					fprintf(stderr, "Cannot allocate verify_md_buf for task=%p\n", task);
@@ -2046,9 +2048,8 @@ bdevperf_construct_job(struct spdk_bdev *bdev, struct job_config *config,
		}

		if (spdk_bdev_desc_is_md_separate(job->bdev_desc)) {
			task->md_buf = spdk_zmalloc(job->io_size_blocks *
						    spdk_bdev_desc_get_md_size(job->bdev_desc), 0, NULL,
						    numa_id, SPDK_MALLOC_DMA);
			task->md_buf = spdk_zmalloc(job->md_buf_size, 0, NULL, numa_id,
						    SPDK_MALLOC_DMA);
			if (!task->md_buf) {
				fprintf(stderr, "Cannot allocate md buf for task=%p\n", task);
				spdk_zipf_free(&job->zipf);