mirror_zfs/include/os/freebsd/spl/sys
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
..
ia32 SPDX: license tags: CDDL-1.0 2025-03-13 17:56:27 -07:00
acl_impl.h SPDX: license tags: CDDL-1.0 2025-03-13 17:56:27 -07:00
acl.h SPDX: license tags: CDDL-1.0 2025-03-13 17:56:27 -07:00
atomic.h SPDX: license tags: BSD-2-Clause 2025-03-13 17:56:46 -07:00
byteorder.h SPDX: license tags: CDDL-1.0 2025-03-13 17:56:27 -07:00
callb.h SPDX: license tags: CDDL-1.0 2025-03-13 17:56:27 -07:00
ccompat.h freebsd: Use compiler.h from FreeBSD's base's linuxkpi 2024-10-16 13:00:40 -04:00
ccompile.h tunables: remove FreeBSD compat macros for Linux module params 2025-05-28 16:50:22 -07:00
cmn_err.h Rename several printf attributes declarations to __printf__ 2026-01-05 14:15:22 -08:00
condvar.h SPDX: license tags: BSD-2-Clause 2025-03-13 17:56:46 -07:00
cred.h SPDX: license tags: CDDL-1.0 2025-03-13 17:56:27 -07:00
ctype.h SPDX: license tags: BSD-2-Clause 2025-03-13 17:56:46 -07:00
debug.h ZIL: allow zil_commit() to fail with error 2025-08-08 16:43:09 -07:00
dirent.h SPDX: license tags: BSD-2-Clause 2025-03-13 17:56:46 -07:00
disp.h SPDX: license tags: BSD-2-Clause 2025-03-13 17:56:46 -07:00
fcntl.h SPDX: license tags: BSD-2-Clause 2025-03-13 17:56:46 -07:00
file.h SPDX: license tags: BSD-2-Clause 2025-03-13 17:56:46 -07:00
freebsd_rwlock.h SPDX: license tags: BSD-2-Clause 2025-03-13 17:56:46 -07:00
idmap.h SPDX: license tags: CDDL-1.0 2025-03-13 17:56:27 -07:00
inttypes.h Add FreeBSD support to OpenZFS 2020-04-14 11:36:28 -07:00
isa_defs.h SPDX: license tags: CDDL-1.0 2025-03-13 17:56:27 -07:00
kmem_cache.h SPDX: license tags: BSD-2-Clause 2025-03-13 17:56:46 -07:00
kmem.h Rename several printf attributes declarations to __printf__ 2026-01-05 14:15:22 -08:00
kstat.h SPDX: license tags: GPL-2.0-or-later 2025-03-13 17:57:09 -07:00
list_impl.h SPDX: license tags: CDDL-1.0 2025-03-13 17:56:27 -07:00
list.h SPDX: license tags: CDDL-1.0 2025-03-13 17:56:27 -07:00
lock.h SPDX: license tags: BSD-2-Clause 2025-03-13 17:56:46 -07:00
misc.h Skip dbuf_evict_one() from dbuf_evict_notify() for reclaim thread 2025-08-01 16:47:41 -07:00
mod.h L2ARC: Implement DWPD-based rate limiting with adaptive feed intervals 2026-02-04 10:07:07 -08:00
mode.h Add FreeBSD support to OpenZFS 2020-04-14 11:36:28 -07:00
mount.h SPDX: license tags: BSD-2-Clause 2025-03-13 17:56:46 -07:00
mutex.h SPDX: license tags: BSD-2-Clause 2025-03-13 17:56:46 -07:00
param.h SPDX: license tags: BSD-2-Clause 2025-03-13 17:56:46 -07:00
policy.h cred: properly pass and test creds on other threads (#17273) 2025-04-29 16:27:48 -07:00
proc.h Prefer VERIFY0P(n) over VERIFY(n == NULL) 2025-08-07 11:41:37 -07:00
processor.h SPDX: license tags: CDDL-1.0 2025-03-13 17:56:27 -07:00
procfs_list.h SPDX: license tags: CDDL-1.0 2025-03-13 17:56:27 -07:00
random.h SPDX: license tags: BSD-2-Clause 2025-03-13 17:56:46 -07:00
rwlock.h SPDX: license tags: BSD-2-Clause 2025-03-13 17:56:46 -07:00
sid.h SPDX: license tags: BSD-2-Clause 2025-03-13 17:56:46 -07:00
sig.h SPDX: license tags: BSD-2-Clause 2025-03-13 17:56:46 -07:00
simd_aarch64.h SPDX: license tags: BSD-2-Clause 2025-03-13 17:56:46 -07:00
simd_arm.h SPDX: license tags: BSD-2-Clause 2025-03-13 17:56:46 -07:00
simd_powerpc.h simd_powerpc.h: enable FPU on FreeBSD 2025-04-01 09:18:38 -04:00
simd_x86.h SPDX: license tags: BSD-2-Clause 2025-03-13 17:56:46 -07:00
simd.h SPDX: license tags: BSD-2-Clause 2025-03-13 17:56:46 -07:00
spl_condvar.h FreeBSD: Reduce divergence from in-tree sources 2023-10-09 13:27:18 -07:00
string.h SPDX: license tags: BSD-2-Clause 2025-03-13 17:56:46 -07:00
sunddi.h SPDX: license tags: GPL-2.0-or-later 2025-03-13 17:57:09 -07:00
sysmacros.h FreeBSD: Remove HAVE_INLINE_FLSL use 2025-12-02 12:13:16 -08:00
systeminfo.h SPDX: license tags: BSD-2-Clause 2025-03-13 17:56:46 -07:00
systm.h SPDX: license tags: BSD-2-Clause 2025-03-13 17:56:46 -07:00
taskq.h Fix snapshot automount expiry cancellation deadlock 2025-12-01 14:43:42 -08:00
thread.h SPDX: license tags: BSD-2-Clause 2025-03-13 17:56:46 -07:00
time.h Detect a slow raidz child during reads 2025-09-10 15:25:03 -07:00
timer.h SPDX: license tags: BSD-2-Clause 2025-03-13 17:56:46 -07:00
trace.h Add FreeBSD support to OpenZFS 2020-04-14 11:36:28 -07:00
types32.h SPDX: license tags: BSD-2-Clause 2025-03-13 17:56:46 -07:00
types.h SPDX: license tags: BSD-2-Clause 2025-03-13 17:56:46 -07:00
uio.h SPDX: license tags: BSD-2-Clause 2025-03-13 17:56:46 -07:00
uuid.h SPDX: license tags: CDDL-1.0 2025-03-13 17:56:27 -07:00
vfs.h SPDX: license tags: BSD-2-Clause 2025-03-13 17:56:46 -07:00
vm.h FreeBSD: zfs_putpages: don't undirty pages until after write completes 2025-07-15 15:58:15 -07:00
vmsystm.h SPDX: license tags: BSD-2-Clause 2025-03-13 17:56:46 -07:00
vnode_impl.h Add support for FreeBSD's Solaris style extended attribute interface 2025-07-30 09:49:43 -07:00
vnode.h SPDX: license tags: BSD-2-Clause 2025-03-13 17:56:46 -07:00
wmsum.h SPDX: license tags: CDDL-1.0 2025-03-13 17:56:27 -07:00
zmod.h SPDX: license tags: CDDL-1.0 2025-03-13 17:56:27 -07:00
zone.h SPDX: license tags: BSD-2-Clause 2025-03-13 17:56:46 -07:00