linux/drivers/block
Max Gurtovoy cee1b21523 null_blk: add option for managing virtual boundary
This will enable changing the virtual boundary of null blk devices. For
now, null blk devices didn't have any restriction on the scatter/gather
elements received from the block layer. Add a module parameter and a
configfs option that will control the virtual boundary. This will
enable testing the efficiency of the block layer bounce buffer in case
a suitable application will send discontiguous IO to the given device.

Initial testing with patched FIO showed the following results (64 jobs,
128 iodepth, 1 nullb device):
IO size      READ (virt=false)   READ (virt=true)   Write (virt=false)  Write (virt=true)
----------  ------------------- -----------------  ------------------- -------------------
 1k            10.7M                8482k               10.8M              8471k
 2k            10.4M                8266k               10.4M              8271k
 4k            10.4M                8274k               10.3M              8226k
 8k            10.2M                8131k               9800k              7933k
 16k           9567k                7764k               8081k              6828k
 32k           8865k                7309k               5570k              5153k
 64k           7695k                6586k               2682k              2617k
 128k          5346k                5489k               1320k              1296k

Signed-off-by: Max Gurtovoy <mgurtovoy@nvidia.com>
Reviewed-by: Damien Le Moal <damien.lemoal@wdc.com>
Link: https://lore.kernel.org/r/20210412095523.278632-1-mgurtovoy@nvidia.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2021-04-12 06:47:25 -06:00
..
aoe block: Replace lkml.org links with lore 2021-02-10 20:07:21 -07:00
drbd drbd: use DEFINE_SPINLOCK() for spinlock 2021-04-06 09:31:42 -06:00
mtip32xx block: mtip32xx: mtip32xx: Mark debugging variable 'start' as __maybe_unused 2021-04-06 09:21:53 -06:00
null_blk null_blk: add option for managing virtual boundary 2021-04-12 06:47:25 -06:00
paride paride/pd: remove ->revalidate_disk 2021-03-29 07:02:56 -06:00
rnbd block/rnbd-clt: avoid module unload race with close confirmation 2021-01-08 08:19:18 -07:00
rsxx rsxx: remove extraneous 'const' qualifier 2021-03-24 06:56:20 -06:00
xen-blkback block: Add bio_max_segs 2021-02-26 15:49:51 -07:00
zram zram: fix broken page writeback 2021-03-13 11:27:31 -08:00
amiflop.c amiflop: use separate gendisks for Amiga vs MS-DOS mode 2020-11-16 08:14:30 -07:00
ataflop.c ataflop: use a separate gendisk for each media format 2020-11-16 08:14:31 -07:00
brd.c block: store a block_device pointer in struct bio 2021-01-24 18:17:20 -07:00
cryptoloop.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 30 2019-05-24 17:27:10 +02:00
floppy.c floppy: always use the track buffer 2021-04-06 09:29:57 -06:00
Kconfig swim: don't call blk_queue_bounce_limit 2021-04-06 09:29:47 -06:00
loop.c block-5.12-2021-02-27 2021-02-28 11:23:38 -08:00
loop.h loop: scale loop device by introducing per device lock 2021-01-26 13:08:54 -07:00
Makefile drivers/block: remove the umem driver 2021-03-24 06:57:40 -06:00
n64cart.c n64: store dev instance into disk private data 2021-02-21 23:37:52 +01:00
nbd.c nbd: handle device refs for DESTROY_ON_DISCONNECT properly 2021-02-22 13:17:23 -07:00
pktcdvd.c block: remove unnecessary argument from blk_execute_rq 2021-01-24 21:52:39 -07:00
ps3disk.c powerpc/ps3: make system bus's remove and shutdown callbacks return void 2020-12-04 01:01:22 +11:00
ps3vram.c block: store a block_device pointer in struct bio 2021-01-24 18:17:20 -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: remove the ->set_read_only method 2021-01-24 18:15:57 -07:00
sunvdc.c compat_ioctl: block: handle cdrom compat ioctl in non-cdrom drivers 2020-01-03 09:33:15 +01:00
swim3.c swim3: support highmem 2021-04-06 09:30:09 -06:00
swim_asm.S treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
swim.c swim: don't call blk_queue_bounce_limit 2021-04-06 09:29:47 -06:00
sx8.c block: remove unnecessary argument from blk_execute_rq_nowait 2021-01-24 21:52:39 -07:00
virtio_blk.c virtio: features, fixes 2021-02-25 12:21:08 -08:00
xen-blkfront.c block: xen-blkfront: Demote kernel-doc abuses 2021-04-06 09:21:53 -06:00
z2ram.c z2ram: use separate gendisk for the different modes 2020-11-16 08:14:31 -07:00