]> www.infradead.org Git - users/jedix/linux-maple.git/commit
ublk: add segment parameter
authorMing Lei <ming.lei@redhat.com>
Thu, 27 Mar 2025 09:51:15 +0000 (17:51 +0800)
committerJens Axboe <axboe@kernel.dk>
Fri, 28 Mar 2025 22:15:43 +0000 (16:15 -0600)
commitebf695f129367ed4b26df6baec2ea7fc50c9e6f0
treed6a1285aef53c81cb8b4f62d3b060ed42983907c
parentb460f328e257db6af0d127fc8a2437f64ad01d3a
ublk: add segment parameter

IO split is usually bad in io_uring world, since -EAGAIN is caused and
IO handling may have to fallback to io-wq, this way does hurt performance.

ublk starts to support zero copy recently, for avoiding unnecessary IO
split, ublk driver's segment limit should be aligned with backend
device's segment limit.

Another reason is that io_buffer_register_bvec() needs to allocate bvecs,
which number is aligned with ublk request segment number, so that big
memory allocation can be avoided by setting reasonable max_segments limit.

So add segment parameter for providing ublk server chance to align
segment limit with backend, and keep it reasonable from implementation
viewpoint.

Signed-off-by: Ming Lei <ming.lei@redhat.com>
Link: https://lore.kernel.org/r/20250327095123.179113-7-ming.lei@redhat.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/block/ublk_drv.c
include/uapi/linux/ublk_cmd.h