mirror_zfs/module/os/freebsd/zfs
Alexander Motin a4862125b8 Remove b_pabd/b_rabd allocation from arc_hdr_alloc()
When a header is allocated for full overwrite it is a waste of time
to allocate b_pabd/b_rabd for it, since arc_write() will free them
without ever being touched.  If it is a read or a partial overwrite
then arc_read() and arc_hdr_decrypt() allocate them explicitly.

Reduced memory allocation in user threads also reduces ARC eviction
throttling there, proportionally increasing it in ZIO threads, that
is not good.  To minimize or even avoid it introduce ARC allocation
reserve, allowing certain arc_get_data_abd() callers to allocate a
bit longer in situations where user threads will already throttle.

Reviewed-by: George Wilson <gwilson@delphix.com>
Reviewed-by: Mark Maybee <mark.maybee@delphix.com>
Signed-off-by: Alexander Motin <mav@FreeBSD.org>
Closes #12398
2021-09-14 14:31:50 -07:00
..
abd_os.c FreeBSD: Hardcode abd_chunk_size to PAGE_SIZE 2021-09-14 12:36:44 -07:00
arc_os.c Remove b_pabd/b_rabd allocation from arc_hdr_alloc() 2021-09-14 14:31:50 -07:00
crypto_os.c FreeBSD: Retry OCF ENOMEM errors. 2021-05-27 22:31:57 -07:00
dmu_os.c FreeBSD: Clean up ASSERT/VERIFY use in module 2021-09-14 12:02:23 -07:00
hkdf.c Add FreeBSD support to OpenZFS 2020-04-14 11:36:28 -07:00
kmod_core.c zfs: add missed dependency of zfs module on zlib 2021-09-14 14:30:39 -07:00
spa_os.c FreeBSD: Clean up ASSERT/VERIFY use in module 2021-09-14 12:02:23 -07:00
sysctl_os.c Restore FreeBSD sysctl processing for arc.min and arc.max 2021-09-14 14:31:01 -07:00
vdev_file.c FreeBSD: Clean up ASSERT/VERIFY use in module 2021-09-14 12:02:23 -07:00
vdev_geom.c Allow disabling of unmapped I/O on FreeBSD 2021-09-14 14:29:46 -07:00
vdev_label_os.c FreeBSD: Clean up ASSERT/VERIFY use in module 2021-09-14 12:02:23 -07:00
zfs_acl.c FreeBSD: Clean up ASSERT/VERIFY use in module 2021-09-14 12:02:23 -07:00
zfs_ctldir.c FreeBSD: Clean up ASSERT/VERIFY use in module 2021-09-14 12:02:23 -07:00
zfs_debug.c Annotated dprintf as printf-like 2021-06-24 13:12:36 -07:00
zfs_dir.c FreeBSD: Clean up ASSERT/VERIFY use in module 2021-09-14 12:02:23 -07:00
zfs_file_os.c file reference counts can get corrupted 2021-09-14 12:37:38 -07:00
zfs_ioctl_compat.c FreeBSD: Fix legacy compat for platform IOCs 2020-09-30 13:25:50 -07:00
zfs_ioctl_os.c libzfs: On FreeBSD, use MNT_NOWAIT with getfsstat 2021-06-09 13:05:34 -07:00
zfs_racct.c Restore FreeBSD resource usage accounting 2021-02-19 22:34:33 -08:00
zfs_vfsops.c FreeBSD: Implement xattr=sa 2021-09-14 12:09:35 -07:00
zfs_vnops_os.c FreeBSD: Implement xattr=sa 2021-09-14 12:09:35 -07:00
zfs_znode.c FreeBSD: Implement xattr=sa 2021-09-14 12:09:35 -07:00
zio_crypt.c FreeBSD: Clean up ASSERT/VERIFY use in module 2021-09-14 12:02:23 -07:00
zvol_os.c FreeBSD: Ignore make_dev_s() errors 2021-09-14 12:40:45 -07:00