linux/drivers/block
Uday Shankar eaf4a9b19b ublk: remove segment count and size limits
ublk_drv currently creates block devices with the default max_segments
and max_segment_size limits of BLK_MAX_SEGMENTS (128) and
BLK_MAX_SEGMENT_SIZE (65536) respectively. These defaults can
artificially constrain the I/O size seen by the ublk server - for
example, suppose that the ublk server has configured itself to accept
I/Os up to 1M and the application is also issuing 1M sized I/Os. If the
I/O buffer used by the application is backed by 4K pages, the buffer
could consist of up to 1M / 4K = 256 physically discontiguous segments
(even if the buffer is virtually contiguous). As such, the I/O could
exceed the default max_segments limit and get split. This can cause
unnecessary performance issues if the ublk server is optimized to handle
1M I/Os. The block layer's segment count/size limits exist to model
hardware constraints which don't exist in ublk_drv's case, so just
remove those limits for the block devices created by ublk_drv.

Signed-off-by: Uday Shankar <ushankar@purestorage.com>
Reviewed-by: Riley Thomasson <riley@purestorage.com>
Reviewed-by: Ming Lei <ming.lei@redhat.com>
Link: https://lore.kernel.org/r/20240430211623.2802036-1-ushankar@purestorage.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2024-04-30 15:36:50 -06:00
..
aoe aoe: fix the potential use-after-free problem in aoecmd_cfg_pkts 2024-03-06 08:32:46 -07:00
drbd for-6.9/block-20240310 2024-03-11 11:43:44 -07:00
mtip32xx mtip: pass queue_limits to blk_mq_alloc_disk 2024-02-19 16:59:31 -07:00
null_blk nullblk: Fix cleanup order in null_add_dev() error path 2024-04-02 07:43:24 -06:00
rnbd for-6.9/block-20240310 2024-03-11 11:43:44 -07:00
xen-blkback xen: port block device access to file 2024-02-25 12:05:23 +01:00
zram - Sumanth Korikkar has taught s390 to allocate hotplug-time page frames 2024-03-14 17:43:30 -07:00
amiflop.c block: pass a queue_limits argument to blk_mq_alloc_disk 2024-02-13 08:56:59 -07:00
ataflop.c block: pass a queue_limits argument to blk_mq_alloc_disk 2024-02-13 08:56:59 -07:00
brd.c brd: pass queue_limits to blk_mq_alloc_disk 2024-02-19 16:58:23 -07:00
floppy.c floppy: remove duplicated code in redo_fd_request() 2024-03-18 20:19:56 -06:00
Kconfig block: ublk: switch to ioctl command encoding 2023-04-18 20:13:30 -06:00
loop.c loop: use the atomic queue limits update API 2024-02-13 08:56:59 -07:00
Makefile Revert "pktcdvd: remove driver." 2023-01-04 14:44:13 -07:00
n64cart.c n64cart: pass queue_limits to blk_mq_alloc_disk 2024-02-19 16:58:24 -07:00
nbd.c nbd: use the atomic queue limits API in nbd_set_size 2024-03-01 09:08:22 -07:00
pktcdvd.c for-6.9/block-20240310 2024-03-11 11:43:44 -07:00
ps3disk.c ps3disk: pass queue_limits to blk_mq_alloc_disk 2024-02-19 16:59:31 -07:00
ps3vram.c block: pass a queue_limits argument to blk_alloc_disk 2024-02-19 16:58:23 -07:00
rbd_types.h libceph, rbd: replace zero-length array with flexible-array 2020-06-01 13:22:53 +02:00
rbd.c rbd: pass queue_limits to blk_mq_alloc_disk 2024-02-19 16:59:31 -07:00
sunvdc.c - Kuan-Wei Chiu has developed the well-named series "lib min_heap: Min 2024-03-14 18:03:09 -07:00
swim3.c block: pass a queue_limits argument to blk_mq_alloc_disk 2024-02-13 08:56:59 -07:00
swim_asm.S treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
swim.c block/swim: Convert to platform remove callback returning void 2024-03-08 09:28:04 -07:00
ublk_drv.c ublk: remove segment count and size limits 2024-04-30 15:36:50 -06:00
virtio_blk.c for-6.9/block-20240310 2024-03-11 11:43:44 -07:00
xen-blkfront.c xen-blkfront: atomically update queue limits 2024-02-27 09:33:08 -07:00
z2ram.c block: pass a queue_limits argument to blk_mq_alloc_disk 2024-02-13 08:56:59 -07:00