Commit fc5be175 authored by Konrad Sztyber's avatar Konrad Sztyber
Browse files

bdev/crypto: use max_rw_size to limit IO size to large iobuf size



This ensures that IOs that do not exceed large iobuf size won't be split
(which could happen with optimal_io_boundary if an IO crossed that
boundary).

Signed-off-by: default avatarKonrad Sztyber <konrad.sztyber@intel.com>
Change-Id: I8d28484f7f7992b60c9933fd9091feca5bf3bcd4
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/20585


Reviewed-by: default avatarJim Harris <jim.harris@samsung.com>
Reviewed-by: default avatarAleksey Marchuk <alexeymar@nvidia.com>
Community-CI: Mellanox Build Bot
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
parent 01ccef6e
Loading
Loading
Loading
Loading
+4 −7
Original line number Diff line number Diff line
@@ -791,13 +791,10 @@ vbdev_crypto_claim(const char *bdev_name)
		vbdev->base_bdev = bdev;

		vbdev->crypto_bdev.write_cache = bdev->write_cache;
		if (bdev->optimal_io_boundary > 0) {
			vbdev->crypto_bdev.optimal_io_boundary =
				spdk_min((iobuf_opts.large_bufsize / bdev->blocklen), bdev->optimal_io_boundary);
		} else {
			vbdev->crypto_bdev.optimal_io_boundary = (iobuf_opts.large_bufsize / bdev->blocklen);
		}
		vbdev->crypto_bdev.split_on_optimal_io_boundary = true;
		vbdev->crypto_bdev.optimal_io_boundary = bdev->optimal_io_boundary;
		vbdev->crypto_bdev.max_rw_size = spdk_min(
				bdev->max_rw_size ? bdev->max_rw_size : UINT32_MAX,
				iobuf_opts.large_bufsize / bdev->blocklen);

		opctx.size = SPDK_SIZEOF(&opctx, block_size);
		opctx.block_size = bdev->blocklen;