From 092de1460ab82f2a7eba276d43514bbaa4c410b2 Mon Sep 17 00:00:00 2001 From: Piotr Pelplinski Date: Wed, 24 Oct 2018 15:12:30 +0200 Subject: [PATCH] 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 Change-Id: I850b614305d66065733381ceb7bd67d4b1cad6b3 Reviewed-on: https://review.gerrithub.io/430783 Tested-by: SPDK CI Jenkins Chandler-Test-Pool: SPDK Automated Test System Reviewed-by: Tomasz Zawadzki Reviewed-by: Maciej Szwed Reviewed-by: Jim Harris Reviewed-by: Shuhei Matsumoto Reviewed-by: Ben Walker --- lib/bdev/bdev.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/lib/bdev/bdev.c b/lib/bdev/bdev.c index 5da6bb648..a92c1549e 100644 --- a/lib/bdev/bdev.c +++ b/lib/bdev/bdev.c @@ -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);