bdev: set optimal io boundary to size of large buf pool

This is requirement for following patch. Requests that will
reuquest bounce buffer can only allocate limited size buffer.

Signed-off-by: Piotr Pelplinski <piotr.pelplinski@intel.com>
Change-Id: I850b614305d66065733381ceb7bd67d4b1cad6b3

Reviewed-on: https://review.gerrithub.io/430783
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Chandler-Test-Pool: SPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Maciej Szwed <maciej.szwed@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
This commit is contained in:
Piotr Pelplinski 2018-10-24 15:12:30 +02:00 committed by Jim Harris
parent 85b805f72e
commit 092de1460a

View File

@ -3258,6 +3258,16 @@ spdk_bdev_init(struct spdk_bdev *bdev)
bdev->internal.qd_poller = NULL;
bdev->internal.qos = NULL;
if (spdk_bdev_get_buf_align(bdev) > 1) {
if (bdev->split_on_optimal_io_boundary) {
bdev->optimal_io_boundary = spdk_min(bdev->optimal_io_boundary,
SPDK_BDEV_LARGE_BUF_MAX_SIZE / bdev->blocklen);
} else {
bdev->split_on_optimal_io_boundary = true;
bdev->optimal_io_boundary = SPDK_BDEV_LARGE_BUF_MAX_SIZE / bdev->blocklen;
}
}
TAILQ_INIT(&bdev->internal.open_descs);
TAILQ_INIT(&bdev->aliases);