mirror_zfs/module/os/linux/zfs
Ameer Hamza d1f290f1ea L2ARC: Implement DWPD-based rate limiting with adaptive feed intervals
Add DWPD (Drive Writes Per Day) rate limiting to control L2ARC write
speeds and protect SSD endurance. Write rate is constrained by the
minimum of l2arc_write_max and DWPD-calculated budget. Devices
accumulate unused write budget over 24-hour periods with automatic reset
and carry-over. Writes occur in controlled bursts (max 50MB) with
adaptive intervals to achieve target rates. Applies after initial device
fill.

Reviewed-by: Alexander Motin <alexander.motin@TrueNAS.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Ameer Hamza <ahamza@ixsystems.com>
Closes #18093
2026-02-04 10:07:07 -08:00
..
abd_os.c Fix a declaration position of the nth_page. 2025-12-09 15:45:51 -08:00
arc_os.c L2ARC: Implement DWPD-based rate limiting with adaptive feed intervals 2026-02-04 10:07:07 -08:00
kasan_compat.c Linux: work around use of GPL-only symbol kasan_flag_enabled 2025-12-10 10:04:57 -08:00
mmp_os.c SPDX: license tags: CDDL-1.0 2025-03-13 17:56:27 -07:00
policy.c cred: properly pass and test creds on other threads (#17273) 2025-04-29 16:27:48 -07:00
qat_compress.c SPDX: license tags: CDDL-1.0 2025-03-13 17:56:27 -07:00
qat_crypt.c SPDX: license tags: CDDL-1.0 2025-03-13 17:56:27 -07:00
qat.c SPDX: license tags: CDDL-1.0 2025-03-13 17:56:27 -07:00
spa_misc_os.c SPDX: license tags: CDDL-1.0 2025-03-13 17:56:27 -07:00
trace.c SPDX: license tags: CDDL-1.0 2025-03-13 17:56:27 -07:00
vdev_disk.c vdev_disk_close: take disk write lock before destroying it 2025-09-15 09:12:24 -07:00
vdev_label_os.c SPDX: license tags: CDDL-1.0 2025-03-13 17:56:27 -07:00
vdev_raidz.c SPDX: license tags: CDDL-1.0 2025-03-13 17:56:27 -07:00
zfs_acl.c Pass flags to more DMU write/hold functions 2025-10-29 11:17:51 -07:00
zfs_ctldir.c Fix snapshot automount race causing duplicate mounts and AVL tree panic 2025-12-08 13:49:11 -08:00
zfs_debug.c SPDX: license tags: CDDL-1.0 2025-03-13 17:56:27 -07:00
zfs_dir.c Fix snapshot automount expiry cancellation deadlock 2025-12-01 14:43:42 -08:00
zfs_file_os.c Enable zhack to work properly with 4k sector size disks 2025-09-10 11:13:55 -07:00
zfs_ioctl_os.c SPDX: license tags: CDDL-1.0 2025-03-13 17:56:27 -07:00
zfs_racct.c Wire O_DIRECT also to Uncached I/O (#17218) 2025-05-13 14:26:55 -07:00
zfs_sysfs.c Prefer VERIFY0P(n) over VERIFY(n == NULL) 2025-08-07 11:41:37 -07:00
zfs_uio.c Fix HIGHMEM/kmap API violation in zfs_uiomove_bvec_impl() 2025-12-09 09:12:24 -08:00
zfs_vfsops.c linux/super: add tunable to request immediate reclaim of unused dentries 2025-09-17 08:16:32 -07:00
zfs_vnops_os.c Fix zfs_open() to skip zil_async_to_sync() for the snapshot 2026-01-06 10:58:56 -08:00
zfs_znode_os.c Fix rangelock test for growing block size 2025-12-18 09:23:38 -08:00
zio_crypt.c SPDX: license tags: CDDL-1.0 2025-03-13 17:56:27 -07:00
zpl_ctldir.c Linux 6.17: d_set_d_op() is no longer available 2025-09-09 13:44:43 -07:00
zpl_export.c Add fh_to_parent export definition 2026-01-08 15:06:12 -08:00
zpl_file_range.c ioctl: remove FICLONE/FICLONERANGE/FIDEDUPERANGE compat 2025-05-08 10:32:52 -04:00
zpl_file.c Linux 6.17 compat: Fix broken projectquota on 6.17 2025-11-05 16:22:03 -08:00
zpl_inode.c Add handling for STATX_CHANGE_COOKIE 2026-01-05 14:06:28 -08:00
zpl_super.c Linux 6.18: generic_drop_inode() and generic_delete_inode() renamed 2025-10-20 16:01:04 -07:00
zpl_xattr.c Prefer VERIFY0P(n) over VERIFY3P(n, ==, NULL) 2025-08-07 11:41:42 -07:00
zvol_os.c spa_misc: add an API for spa_namespace_lock 2025-11-10 14:23:39 -08:00