zfs/include/os/linux/kernel/linux
Rob Norris 98bcc390e8 vdev_disk: rework bio max segment calculation
A single "page" in an ABD does not necessarily correspond to one segment
in a bio, because of how ZFS does ABD allocations and how it breaks them
up with adding them to a bio. Because of this, simply dividing the ABD
size by the page size can only ever give a minimum number of segments
required, rather than the correct number.

Until we can fix that, we'll just make each bio as large as they can be
for as many segments as the device queue will permit without needing to
split the the bio. This is a little wasteful if we don't intend to put
that many segments in the bio, but its not a lot of memory and its only
lost until the bio is completed.

This also adds a tuneable, vdev_disk_max_segs, to allow setting this
value to be set by the operator. This is very useful for debugging.

Signed-off-by: Rob Norris <rob.norris@klarasystems.com>
(cherry picked from commit a3a438d1bedb0626417cd73ba10b1479a06bef7f)
2023-07-31 15:05:56 +00:00
..
Makefile.am Avoid installing kernel headers on FreeBSD 2020-06-27 17:40:14 -07:00
blkdev_compat.h Linux 5.19 compat: bdev_start_io_acct() / bdev_end_io_acct() 2022-06-01 14:24:49 -07:00
compiler_compat.h Use fallthrough macro 2021-11-02 09:50:30 -07:00
dcache_compat.h Linux compat: Minimum kernel version 3.10 2019-11-12 08:59:06 -08:00
kmap_compat.h Removing old code for k(un)map_atomic 2021-03-19 22:38:44 -07:00
mod_compat.h vdev_disk: rework bio max segment calculation 2023-07-31 15:05:56 +00:00
page_compat.h Linux 5.9 compat: NR_SLAB_RECLAIMABLE 2020-08-29 20:57:45 -07:00
percpu_compat.h Use percpu_counter for obj_alloc counter of Linux-backed caches 2020-06-26 18:06:50 -07:00
simd.h Add AltiVec RAID-Z 2020-01-23 11:01:24 -08:00
simd_aarch64.h Linux 4.14, 4.19, 5.0+ compat: SIMD save/restore 2019-10-24 10:17:33 -07:00
simd_powerpc.h Add AltiVec RAID-Z 2020-01-23 11:01:24 -08:00
simd_x86.h Linux 5.19 compat: asm/fpu/internal.h 2022-06-01 14:24:49 -07:00
utsname_compat.h OpenZFS restructuring - move platform specific headers 2019-09-05 09:34:54 -07:00
vfs_compat.h Linux 5.12 compat: idmapped mounts 2021-03-19 21:00:59 -07:00
xattr_compat.h Linux 5.12 compat: idmapped mounts 2021-03-19 21:00:59 -07:00