mirror_zfs/module/os/freebsd/zfs
Jorgen Lundman c6d1112bf4
Fix abd leak, kmem_free correct size of abd_t
Fix a leak of abd_t that manifested mostly when using
raidzN with at least as many columns as N (e.g. a
four-disk raidz2 but not a three-disk raidz2).
Sufficiently heavy raidz use would eventually run a system
out of memory.

Additionally:

* Switch abd_cache arena to FIRSTFIT, which empirically
improves perofrmance.

* Make abd_chunk_cache more performant and debuggable.

* Allocate the abd_zero_buf from abd_chunk_cache rather
than the heap.

* Don't try to reap non-existent qcaches in abd_cache arena.

* KM_PUSHPAGE->KM_SLEEP when allocating chunks from their
own arena

Reviewed-by: Matthew Ahrens <mahrens@delphix.com>
Reviewed-by: Alexander Motin <mav@FreeBSD.org>
Signed-off-by: Jorgen Lundman <lundman@lundman.net>
Co-authored-by: Sean Doran <smd@use.net>
Closes #12295
2021-07-01 09:28:15 -06:00
..
abd_os.c Fix abd leak, kmem_free correct size of abd_t 2021-07-01 09:28:15 -06:00
arc_os.c FreeBSD: avoid memory allocation in arc_prune_async 2021-05-25 19:38:34 -06:00
crypto_os.c FreeBSD: Retry OCF ENOMEM errors. 2021-05-24 14:42:45 -06:00
dmu_os.c FreeBSD: Clean up ASSERT/VERIFY use in module 2021-04-30 16:36:10 -07:00
hkdf.c Add FreeBSD support to OpenZFS 2020-04-14 11:36:28 -07:00
kmod_core.c Move zfsdev_state_{init,destroy} to common code 2021-04-08 21:17:43 -07:00
spa_os.c FreeBSD: Clean up ASSERT/VERIFY use in module 2021-04-30 16:36:10 -07:00
sysctl_os.c Reference_tracking_enable should be a module param 2021-03-16 14:56:17 -07:00
vdev_file.c FreeBSD: Clean up ASSERT/VERIFY use in module 2021-04-30 16:36:10 -07:00
vdev_geom.c FreeBSD: Clean up ASSERT/VERIFY use in module 2021-04-30 16:36:10 -07:00
vdev_label_os.c FreeBSD: Clean up ASSERT/VERIFY use in module 2021-04-30 16:36:10 -07:00
zfs_acl.c FreeBSD: Remove !FreeBSD ifdef'd code 2021-05-07 15:13:44 -07:00
zfs_ctldir.c FreeBSD: Clean up ASSERT/VERIFY use in module 2021-04-30 16:36:10 -07:00
zfs_debug.c Annotated dprintf as printf-like 2021-06-22 21:53:45 -07:00
zfs_dir.c Clean up use of zfs_log_create in zfs_dir 2021-05-07 15:13:10 -07:00
zfs_file_os.c FreeBSD: Fix stable/12 after AT_BENEATH removal 2021-04-02 11:06:44 -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-08 07:36:43 -06:00
zfs_racct.c Restore FreeBSD resource usage accounting 2021-02-19 22:34:33 -08:00
zfs_vfsops.c Annotated dprintf as printf-like 2021-06-22 21:53:45 -07:00
zfs_vnops_os.c FreeBSD: Implement xattr=sa 2021-05-13 15:14:12 -07:00
zfs_znode.c FreeBSD: Implement xattr=sa 2021-05-13 15:14:12 -07:00
zio_crypt.c Revert "Fix raw sends on encrypted datasets when copying back snapshots" 2021-05-13 10:00:17 -07:00
zvol_os.c FreeBSD: Update dataset_kstats for zvols in dev mode 2021-05-26 12:14:26 -06:00