Commit 85b805f7 authored by Piotr Pelplinski's avatar Piotr Pelplinski Committed by Jim Harris
Browse files

bdev: rename need_aligned_buffer to required_alignment



This patch changes the name of the field. Following patches
will introduce logic that will guarantee that buffers
provided to bdev module will be aligned to value
specified in this field


Signed-off-by: default avatarPiotr Pelplinski <piotr.pelplinski@intel.com>
Change-Id: I5329b9fe26ef2417bc7beae86518cc643b263f97

Reviewed-on: https://review.gerrithub.io/430782


Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
Reviewed-by: default avatarBen Walker <benjamin.walker@intel.com>
Reviewed-by: default avatarShuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: default avatarTomasz Zawadzki <tomasz.zawadzki@intel.com>
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Chandler-Test-Pool: SPDK Automated Test System <sys_sgsw@intel.com>
parent bf6a6019
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -261,10 +261,13 @@ struct spdk_bdev {
	uint64_t blockcnt;

	/**
	 * This is used to make sure buffers are sector aligned.
	 * This causes double buffering on writes.
	 * Specifies an alignment requirement for data buffers associated with an spdk_bdev_io.
	 * 0 = no alignment requirement
	 * >0 = alignment requirement is 2 ^ required_alignment.
	 * bdev layer will automatically double buffer any spdk_bdev_io that violates this
	 * alignment, before the spdk_bdev_io is submitted to the bdev module.
	 */
	bool need_aligned_buffer;
	uint8_t required_alignment;

	/**
	 * Specifies whether the optimal_io_boundary is mandatory or
+1 −1
Original line number Diff line number Diff line
@@ -549,7 +549,6 @@ create_aio_disk(const char *name, const char *filename, uint32_t block_size)
	fdisk->disk.product_name = "AIO disk";
	fdisk->disk.module = &aio_if;

	fdisk->disk.need_aligned_buffer = 1;
	fdisk->disk.write_cache = 1;

	detected_block_size = spdk_fd_get_blocklen(fdisk->fd);
@@ -586,6 +585,7 @@ create_aio_disk(const char *name, const char *filename, uint32_t block_size)
	}

	fdisk->disk.blocklen = block_size;
	fdisk->disk.required_alignment = spdk_u32log2(block_size);

	if (disk_size % fdisk->disk.blocklen != 0) {
		SPDK_ERRLOG("Disk size %" PRIu64 " is not a multiple of block size %" PRIu32 "\n",
+1 −6
Original line number Diff line number Diff line
@@ -2034,12 +2034,7 @@ spdk_bdev_get_qos_rate_limits(struct spdk_bdev *bdev, uint64_t *limits)
size_t
spdk_bdev_get_buf_align(const struct spdk_bdev *bdev)
{
	/* TODO: push this logic down to the bdev modules */
	if (bdev->need_aligned_buffer) {
		return bdev->blocklen;
	}

	return 1;
	return 1 << bdev->required_alignment;
}

uint32_t
+1 −1
Original line number Diff line number Diff line
@@ -1444,7 +1444,7 @@ vbdev_crypto_claim(struct spdk_bdev *bdev)

		vbdev->crypto_bdev.product_name = "crypto";
		vbdev->crypto_bdev.write_cache = bdev->write_cache;
		vbdev->crypto_bdev.need_aligned_buffer = bdev->need_aligned_buffer;
		vbdev->crypto_bdev.required_alignment = bdev->required_alignment;
		/* Note: CRYPTO_MAX_IO is in units of bytes, optimal_io_boundary is
		 * in units of blocks.
		 */
+1 −1
Original line number Diff line number Diff line
@@ -957,7 +957,7 @@ _create_lvol_disk(struct spdk_lvol *lvol, bool destroy)
	assert((total_size % bdev->blocklen) == 0);
	bdev->blockcnt = total_size / bdev->blocklen;
	bdev->uuid = lvol->uuid;
	bdev->need_aligned_buffer = lvs_bdev->bdev->need_aligned_buffer;
	bdev->required_alignment = lvs_bdev->bdev->required_alignment;
	bdev->split_on_optimal_io_boundary = true;
	bdev->optimal_io_boundary = spdk_bs_get_cluster_size(lvol->lvol_store->blobstore) / bdev->blocklen;

Loading