Commit 18ba317c authored by Artur Paszkiewicz's avatar Artur Paszkiewicz Committed by Konrad Sztyber
Browse files

ut/raid5f: assume raid_io_info is always one stripe



Support for multi-stripe requests is not used anymore so remove it.

Change-Id: I8f28817763452674c8a183c640800f3a4b4b3653
Signed-off-by: default avatarArtur Paszkiewicz <artur.paszkiewicz@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15269


Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: default avatarTomasz Zawadzki <tomasz.zawadzki@intel.com>
parent ca6d23e7
Loading
Loading
Loading
Loading
+15 −46
Original line number Diff line number Diff line
@@ -244,8 +244,6 @@ struct raid_io_info {
	void *reference_md_parity;
	size_t parity_md_buf_size;
	enum spdk_bdev_io_status status;
	bool failed;
	int remaining;
	TAILQ_HEAD(, spdk_bdev_io) bdev_io_queue;
	TAILQ_HEAD(, spdk_bdev_io_wait_entry) bdev_io_wait_queue;
	struct {
@@ -285,17 +283,11 @@ raid_bdev_io_completion_cb(struct spdk_bdev_io *bdev_io, bool success, void *cb_
	spdk_bdev_free_io(bdev_io);

	if (!success) {
		io_info->failed = true;
	}

	if (--io_info->remaining == 0) {
		if (io_info->failed) {
		io_info->status = SPDK_BDEV_IO_STATUS_FAILED;
	} else {
		io_info->status = SPDK_BDEV_IO_STATUS_SUCCESS;
	}
}
}

static struct raid_bdev_io *
get_raid_io(struct raid_io_info *io_info)
@@ -341,8 +333,6 @@ get_raid_io(struct raid_io_info *io_info)
	bdev_io->u.bdev.iovcnt = 1;
	bdev_io->iov.iov_len = io_info->num_blocks * blocklen;

	io_info->remaining++;

	return raid_io;
}

@@ -432,7 +422,6 @@ spdk_bdev_writev_blocks_with_md(struct spdk_bdev_desc *desc, struct spdk_io_chan
	struct test_raid_bdev_io *test_raid_bdev_io;
	struct raid_io_info *io_info;
	struct raid_bdev *raid_bdev;
	uint64_t stripe_idx_off;
	uint8_t data_chunk_idx;
	uint64_t data_offset;
	void *dest_buf, *dest_md_buf;
@@ -443,30 +432,20 @@ spdk_bdev_writev_blocks_with_md(struct spdk_bdev_desc *desc, struct spdk_io_chan
	stripe_req = raid5f_chunk_stripe_req(chunk);
	test_raid_bdev_io = (struct test_raid_bdev_io *)spdk_bdev_io_from_ctx(stripe_req->raid_io);
	io_info = test_raid_bdev_io->io_info;

	raid_bdev = io_info->r5f_info->raid_bdev;

	stripe_idx_off = offset_blocks / raid_bdev->strip_size -
			 io_info->offset_blocks / io_info->r5f_info->stripe_blocks;

	if (chunk == stripe_req->parity_chunk) {
		if (io_info->parity_buf == NULL) {
			goto submit;
		}
		data_offset = stripe_idx_off * raid_bdev->strip_size_kb * 1024;
		dest_buf = io_info->parity_buf + data_offset;

		dest_buf = io_info->parity_buf;
		if (md_buf != NULL) {
			data_offset = DATA_OFFSET_TO_MD_OFFSET(raid_bdev, data_offset);
			dest_md_buf = io_info->parity_md_buf + data_offset;
			dest_md_buf = io_info->parity_md_buf;
		}
	} else {
		data_chunk_idx = chunk < stripe_req->parity_chunk ? chunk->index : chunk->index - 1;
		data_offset = (stripe_idx_off * io_info->r5f_info->stripe_blocks +
			       data_chunk_idx * raid_bdev->strip_size) *
			      raid_bdev->bdev.blocklen;
		data_offset = data_chunk_idx * raid_bdev->strip_size * raid_bdev->bdev.blocklen;
		dest_buf = test_raid_bdev_io->buf + data_offset;

		if (md_buf != NULL) {
			data_offset = DATA_OFFSET_TO_MD_OFFSET(raid_bdev, data_offset);
			dest_md_buf = test_raid_bdev_io->buf_md + data_offset;
@@ -683,30 +662,24 @@ io_info_setup_parity(struct raid_io_info *io_info)
	struct raid5f_info *r5f_info = io_info->r5f_info;
	struct raid_bdev *raid_bdev = r5f_info->raid_bdev;
	uint32_t blocklen = raid_bdev->bdev.blocklen;
	uint64_t num_stripes = io_info->num_blocks / r5f_info->stripe_blocks;
	size_t strip_len = raid_bdev->strip_size * blocklen;
	size_t strip_md_len = raid_bdev->strip_size * raid_bdev->bdev.md_len;
	void *src = io_info->src_buf;
	void *dest;
	unsigned i, j;
	unsigned i;

	io_info->parity_buf_size = num_stripes * strip_len;
	io_info->parity_buf_size = strip_len;
	io_info->parity_buf = calloc(1, io_info->parity_buf_size);
	SPDK_CU_ASSERT_FATAL(io_info->parity_buf != NULL);

	io_info->reference_parity = calloc(1, io_info->parity_buf_size);
	SPDK_CU_ASSERT_FATAL(io_info->reference_parity != NULL);

	dest = io_info->reference_parity;
	for (i = 0; i < num_stripes; i++) {
		for (j = 0; j < raid5f_stripe_data_chunks_num(raid_bdev); j++) {
			xor_block(dest, src, strip_len);
	for (i = 0; i < raid5f_stripe_data_chunks_num(raid_bdev); i++) {
		xor_block(io_info->reference_parity, src, strip_len);
		src += strip_len;
	}
		dest += strip_len;
	}

	io_info->parity_md_buf_size = num_stripes * strip_md_len;
	io_info->parity_md_buf_size = strip_md_len;
	io_info->parity_md_buf = calloc(1, io_info->parity_md_buf_size);
	SPDK_CU_ASSERT_FATAL(io_info->parity_md_buf != NULL);

@@ -714,14 +687,10 @@ io_info_setup_parity(struct raid_io_info *io_info)
	SPDK_CU_ASSERT_FATAL(io_info->reference_md_parity != NULL);

	src = io_info->src_md_buf;
	dest = io_info->reference_md_parity;
	for (i = 0; i < num_stripes; i++) {
		for (j = 0; j < raid5f_stripe_data_chunks_num(raid_bdev); j++) {
			xor_block(dest, src, strip_md_len);
	for (i = 0; i < raid5f_stripe_data_chunks_num(raid_bdev); i++) {
		xor_block(io_info->reference_md_parity, src, strip_md_len);
		src += strip_md_len;
	}
		dest += strip_md_len;
	}
}

static void