Commit 0ebc1339 authored by Artur Paszkiewicz's avatar Artur Paszkiewicz Committed by Tomasz Zawadzki
Browse files

raid: move blocklen_shift to r5f_info



This is not generally useful now but there is one case in raid5f where
it is used to avoid a division, so move it there.

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


Reviewed-by: default avatarKonrad Sztyber <konrad.sztyber@intel.com>
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarShuhei Matsumoto <smatsumoto@nvidia.com>
Reviewed-by: default avatarMateusz Kozlowski <mateusz.kozlowski@solidigm.com>
Community-CI: Mellanox Build Bot
parent 0830da33
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -1778,7 +1778,6 @@ raid_bdev_configure(struct raid_bdev *raid_bdev)
		return -EINVAL;
	}
	raid_bdev->strip_size_shift = spdk_u32log2(raid_bdev->strip_size);
	raid_bdev->blocklen_shift = spdk_u32log2(data_block_size);

	rc = raid_bdev->module->start(raid_bdev);
	if (rc != 0) {
+0 −3
Original line number Diff line number Diff line
@@ -197,9 +197,6 @@ struct raid_bdev {
	/* strip size bit shift for optimized calculation */
	uint32_t			strip_size_shift;

	/* block length bit shift for optimized calculation */
	uint32_t			blocklen_shift;

	/* state of raid bdev */
	enum raid_bdev_state		state;

+8 −1
Original line number Diff line number Diff line
@@ -112,6 +112,9 @@ struct raid5f_info {

	/* Alignment for buffer allocation */
	size_t buf_alignment;

	/* block length bit shift for optimized calculation, only valid when no interleaved md */
	uint32_t blocklen_shift;
};

struct raid5f_io_channel {
@@ -519,6 +522,7 @@ raid5f_stripe_request_map_iovecs(struct stripe_request *stripe_req)
{
	struct raid_bdev_io *raid_io = stripe_req->raid_io;
	struct raid_bdev *raid_bdev = raid_io->raid_bdev;
	struct raid5f_info *r5f_info = raid_bdev->module_private;
	struct chunk *chunk;
	int raid_io_iov_idx = 0;
	size_t raid_io_offset = 0;
@@ -548,7 +552,7 @@ raid5f_stripe_request_map_iovecs(struct stripe_request *stripe_req)

		if (raid_io->md_buf != NULL) {
			chunk->md_buf = raid_io->md_buf +
					(raid_io_offset >> raid_bdev->blocklen_shift) * raid_bdev->bdev.md_len;
					(raid_io_offset >> r5f_info->blocklen_shift) * raid_bdev->bdev.md_len;
		}

		for (i = 0; i < chunk_iovcnt; i++) {
@@ -1089,6 +1093,9 @@ raid5f_start(struct raid_bdev *raid_bdev)
	r5f_info->total_stripes = min_blockcnt / raid_bdev->strip_size;
	r5f_info->stripe_blocks = raid_bdev->strip_size * raid5f_stripe_data_chunks_num(raid_bdev);
	r5f_info->buf_alignment = alignment;
	if (!raid_bdev->bdev.md_interleave) {
		r5f_info->blocklen_shift = spdk_u32log2(raid_bdev->bdev.blocklen);
	}

	raid_bdev->bdev.blockcnt = r5f_info->stripe_blocks * r5f_info->total_stripes;
	raid_bdev->bdev.optimal_io_boundary = raid_bdev->strip_size;
+0 −1
Original line number Diff line number Diff line
@@ -1187,7 +1187,6 @@ verify_raid_bdev(struct rpc_bdev_raid_create *r, bool presence, uint32_t raid_st
			CU_ASSERT(pbdev->strip_size == ((r->strip_size_kb * 1024) / g_block_len));
			CU_ASSERT(pbdev->strip_size_shift == spdk_u32log2(((r->strip_size_kb * 1024) /
					g_block_len)));
			CU_ASSERT(pbdev->blocklen_shift == spdk_u32log2(g_block_len));
			CU_ASSERT((uint32_t)pbdev->state == raid_state);
			CU_ASSERT(pbdev->num_base_bdevs == r->base_bdevs.num_base_bdevs);
			CU_ASSERT(pbdev->num_base_bdevs_discovered == r->base_bdevs.num_base_bdevs);
+0 −1
Original line number Diff line number Diff line
@@ -110,7 +110,6 @@ raid_test_create_raid_bdev(struct raid_params *params, struct raid_bdev_module *
	raid_bdev->strip_size = params->strip_size;
	raid_bdev->strip_size_kb = params->strip_size * params->base_bdev_blocklen / 1024;
	raid_bdev->strip_size_shift = spdk_u32log2(raid_bdev->strip_size);
	raid_bdev->blocklen_shift = spdk_u32log2(params->base_bdev_blocklen);

	raid_bdev->base_bdev_info = calloc(raid_bdev->num_base_bdevs,
					   sizeof(struct raid_base_bdev_info));
Loading