mirror_zfs/module/zfs
Paul Dagnelie 1b495eeab3
FDT dedup log sync -- remove incremental
This PR condenses the FDT dedup log syncing into a single sync
pass. This reduces the overhead of modifying indirect blocks for the
dedup table multiple times per txg. In addition, changes were made to
the formula for how much to sync per txg. We now also consider the
backlog we have to clear, to prevent it from growing too large, or
remaining large on an idle system.

Sponsored-by: Klara, Inc.
Sponsored-by: iXsystems, Inc.
Reviewed-by: Alexander Motin <mav@FreeBSD.org>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Tony Hutter <hutter2@llnl.gov>
Authored-by: Don Brady <don.brady@klarasystems.com>
Authored-by: Paul Dagnelie <paul.dagnelie@klarasystems.com>
Signed-off-by: Paul Dagnelie <paul.dagnelie@klarasystems.com>
Closes #17038
2025-03-13 13:47:03 -04:00
..
abd.c Adding Direct IO Support 2024-09-14 13:47:59 -07:00
aggsum.c Remove bcopy(), bzero(), bcmp() 2022-03-15 15:13:42 -07:00
arc.c arc: avoid possible deadlock in arc_read 2025-02-25 14:32:12 -05:00
blake3_zfs.c blake3: fix up bogus checksums in face of cpu migration 2023-05-01 17:21:27 -07:00
blkptr.c compress: change zio_compress API to use ABDs 2024-08-22 16:22:24 -07:00
bplist.c Use list_remove_head() where possible. 2023-06-09 10:12:52 -07:00
bpobj.c Provide macros for setting and getting blkptr birth times 2024-03-25 15:01:54 -07:00
bptree.c Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
bqueue.c Batch enqueue/dequeue for bqueue 2023-01-10 13:39:22 -08:00
brt.c BRT: Check bv_mos_entries in brt_entry_lookup() 2024-12-12 10:22:41 -08:00
btree.c Remove unnecessary CSTYLED escapes on top-level macro invocations 2024-12-06 08:53:57 -08:00
dataset_kstats.c Adding Direct IO Support 2024-09-14 13:47:59 -07:00
dbuf_stats.c Consider dnode_t allocations in dbuf cache size accounting 2023-11-17 13:25:53 -08:00
dbuf.c Linux 6.12 compat: Rename range_tree_* to zfs_range_tree_* 2025-02-14 15:37:48 -08:00
ddt_log.c Add DDT prune command 2024-09-04 14:17:02 -07:00
ddt_stats.c ddt: dedup log 2024-08-16 12:03:35 -07:00
ddt_zap.c Remove unnecessary CSTYLED escapes on top-level macro invocations 2024-12-06 08:53:57 -08:00
ddt.c FDT dedup log sync -- remove incremental 2025-03-13 13:47:03 -04:00
dmu_diff.c Simplify issig(). 2024-05-29 10:49:11 -07:00
dmu_direct.c Reduce dirty records memory usage 2024-11-04 16:42:06 -08:00
dmu_object.c Remove unnecessary CSTYLED escapes on top-level macro invocations 2024-12-06 08:53:57 -08:00
dmu_objset.c Allocate zap_attribute_t from kmem instead of stack 2024-10-01 13:39:08 -07:00
dmu_recv.c Remove unnecessary CSTYLED escapes on top-level macro invocations 2024-12-06 08:53:57 -08:00
dmu_redact.c Allocate zap_attribute_t from kmem instead of stack 2024-10-01 13:39:08 -07:00
dmu_send.c ZFS send should use spill block prefetched from send_reader_thread 2024-11-06 11:52:01 -08:00
dmu_traverse.c Remove unnecessary CSTYLED escapes on top-level macro invocations 2024-12-06 08:53:57 -08:00
dmu_tx.c Fix false assertion in dmu_tx_dirty_buf() on cloning 2024-12-05 11:48:08 -08:00
dmu_zfetch.c Improve speculative prefetcher for block cloning 2024-12-04 15:19:05 -08:00
dmu.c Remove unnecessary CSTYLED escapes on top-level macro invocations 2024-12-06 08:53:57 -08:00
dnode_sync.c Linux 6.12 compat: Rename range_tree_* to zfs_range_tree_* 2025-02-14 15:37:48 -08:00
dnode.c Linux 6.12 compat: Rename range_tree_* to zfs_range_tree_* 2025-02-14 15:37:48 -08:00
dsl_bookmark.c Allocate zap_attribute_t from kmem instead of stack 2024-10-01 13:39:08 -07:00
dsl_crypt.c Check portable objset MAC even if local is zeroed 2025-03-08 21:15:11 -05:00
dsl_dataset.c Allow dsl_deadlist_open() return errors 2024-12-04 15:15:58 -08:00
dsl_deadlist.c Allow dsl_deadlist_open() return errors 2024-12-04 15:15:58 -08:00
dsl_deleg.c Allocate zap_attribute_t from kmem instead of stack 2024-10-01 13:39:08 -07:00
dsl_destroy.c Allow dsl_deadlist_open() return errors 2024-12-04 15:15:58 -08:00
dsl_dir.c Remove unnecessary CSTYLED escapes on top-level macro invocations 2024-12-06 08:53:57 -08:00
dsl_pool.c Linux 6.12 compat: Rename range_tree_* to zfs_range_tree_* 2025-02-14 15:37:48 -08:00
dsl_prop.c snapdir: add 'disabled' value to make .zfs inaccessible 2024-10-02 09:12:02 -07:00
dsl_scan.c arc: avoid possible deadlock in arc_read 2025-02-25 14:32:12 -05:00
dsl_synctask.c Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
dsl_userhold.c Allocate zap_attribute_t from kmem instead of stack 2024-10-01 13:39:08 -07:00
edonr_zfs.c Remove unused Edon-R variants 2023-03-14 15:59:58 -07:00
fm.c Use list_remove_head() where possible. 2023-06-09 10:12:52 -07:00
gzip.c compress: change compression providers API to use ABDs 2024-08-22 16:22:24 -07:00
hkdf.c Remove bcopy(), bzero(), bcmp() 2022-03-15 15:13:42 -07:00
lz4_zfs.c compress: change compression providers API to use ABDs 2024-08-22 16:22:24 -07:00
lz4.c lz4: Cherrypick fix for CVE-2021-3520 2022-01-12 16:14:36 -08:00
lzjb.c compress: change compression providers API to use ABDs 2024-08-22 16:22:24 -07:00
metaslab.c Better fill empty metaslabs 2025-02-25 14:26:34 -05:00
mmp.c Remove unnecessary CSTYLED escapes on top-level macro invocations 2024-12-06 08:53:57 -08:00
multilist.c L2ARC: Relax locking during write 2024-04-09 16:23:19 -07:00
objlist.c Implement Redacted Send/Receive 2019-06-19 09:48:12 -07:00
pathname.c Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
range_tree.c range_tree: convert remaining range_* defs to zfs_range_* 2025-02-14 15:37:56 -08:00
refcount.c Remove unnecessary CSTYLED escapes on top-level macro invocations 2024-12-06 08:53:57 -08:00
rrwlock.c Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
sa.c Allocate zap_attribute_t from kmem instead of stack 2024-10-01 13:39:08 -07:00
sha2_zfs.c Add generic implementation handling and SHA2 impl 2023-03-02 13:52:21 -08:00
skein_zfs.c Remove bcopy(), bzero(), bcmp() 2022-03-15 15:13:42 -07:00
spa_checkpoint.c Linux 6.12 compat: Rename range_tree_* to zfs_range_tree_* 2025-02-14 15:37:48 -08:00
spa_config.c Add mutex_enter_interruptible() for interruptible sleeping IOCTLs 2023-10-26 09:17:40 -07:00
spa_errlog.c Remove unnecessary CSTYLED escapes on top-level macro invocations 2024-12-06 08:53:57 -08:00
spa_history.c Assert if we're logging after final txg was set 2024-11-25 18:37:56 -05:00
spa_log_spacemap.c Linux 6.12 compat: Rename range_tree_* to zfs_range_tree_* 2025-02-14 15:37:48 -08:00
spa_misc.c spa: fix signature mismatch for spa_boot_init as eventhandler required 2025-02-25 14:28:57 -05:00
spa_stats.c Adding Direct IO Support 2024-09-14 13:47:59 -07:00
spa.c arc: avoid possible deadlock in arc_read 2025-02-25 14:32:12 -05:00
space_map.c range_tree: convert remaining range_* defs to zfs_range_* 2025-02-14 15:37:56 -08:00
space_reftree.c Linux 6.12 compat: Rename range_tree_* to zfs_range_tree_* 2025-02-14 15:37:48 -08:00
THIRDPARTYLICENSE.cityhash OpenZFS 8484 - Implement aggregate sum and use for arc counters 2018-06-06 09:35:59 -07:00
THIRDPARTYLICENSE.cityhash.descrip OpenZFS 8484 - Implement aggregate sum and use for arc counters 2018-06-06 09:35:59 -07:00
txg.c vdev probe to slow disk can stall mmp write checker 2024-04-29 14:35:53 -07:00
uberblock.c Provide macros for setting and getting blkptr birth times 2024-03-25 15:01:54 -07:00
unique.c Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
vdev_draid_rand.c Distributed Spare (dRAID) Feature 2020-11-13 13:51:51 -08:00
vdev_draid.c range_tree: convert remaining range_* defs to zfs_range_* 2025-02-14 15:37:56 -08:00
vdev_file.c vdev_file: make FLUSH and TRIM asynchronous 2025-02-22 14:16:54 -05:00
vdev_indirect_births.c Remove bcopy(), bzero(), bcmp() 2022-03-15 15:13:42 -07:00
vdev_indirect_mapping.c Remove bcopy(), bzero(), bcmp() 2022-03-15 15:13:42 -07:00
vdev_indirect.c Linux 6.12 compat: Rename range_tree_* to zfs_range_tree_* 2025-02-14 15:37:48 -08:00
vdev_initialize.c range_tree: convert remaining range_* defs to zfs_range_* 2025-02-14 15:37:56 -08:00
vdev_label.c range_tree: convert remaining range_* defs to zfs_range_* 2025-02-14 15:37:56 -08:00
vdev_mirror.c Remove unnecessary CSTYLED escapes on top-level macro invocations 2024-12-06 08:53:57 -08:00
vdev_missing.c Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
vdev_queue.c FDT dedup log sync -- remove incremental 2025-03-13 13:47:03 -04:00
vdev_raidz_math_aarch64_neon_common.h Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
vdev_raidz_math_aarch64_neon.c Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
vdev_raidz_math_aarch64_neonx2.c Fix Clang 15 compilation errors 2022-11-30 13:46:26 -08:00
vdev_raidz_math_avx2.c Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
vdev_raidz_math_avx512bw.c Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
vdev_raidz_math_avx512f.c Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
vdev_raidz_math_impl.h RAIDZ: Use cache blocking during parity math 2023-10-30 14:54:27 -07:00
vdev_raidz_math_powerpc_altivec_common.h Linux ppc64le ieee128 compat: Do not redefine __asm on external headers 2023-01-13 10:58:58 -08:00
vdev_raidz_math_powerpc_altivec.c Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
vdev_raidz_math_scalar.c Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
vdev_raidz_math_sse2.c Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
vdev_raidz_math_ssse3.c Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
vdev_raidz_math.c Make the vfs.zfs.vdev.raidz_impl sysctl cross-platform 2025-01-29 09:18:09 -05:00
vdev_raidz.c range_tree: convert remaining range_* defs to zfs_range_* 2025-02-14 15:37:56 -08:00
vdev_rebuild.c Linux 6.12 compat: Rename range_tree_* to zfs_range_tree_* 2025-02-14 15:37:48 -08:00
vdev_removal.c Don't try to get mg of hole vdev in removal 2025-02-25 14:30:51 -05:00
vdev_root.c Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
vdev_trim.c range_tree: convert remaining range_* defs to zfs_range_* 2025-02-14 15:37:56 -08:00
vdev.c range_tree: convert remaining range_* defs to zfs_range_* 2025-02-14 15:37:56 -08:00
zap_leaf.c ZAP: Reduce leaf array and free chunks fragmentation 2024-11-20 13:37:52 -08:00
zap_micro.c microzap: set hard upper limit of 1M 2024-12-26 17:10:09 -05:00
zap.c Remove unnecessary CSTYLED escapes on top-level macro invocations 2024-12-06 08:53:57 -08:00
zcp_get.c nvpair: Constify string functions 2023-03-14 15:25:50 -07:00
zcp_global.c OpenZFS 8600 - ZFS channel programs - snapshot 2018-02-08 15:29:24 -08:00
zcp_iter.c Allocate zap_attribute_t from kmem instead of stack 2024-10-01 13:39:08 -07:00
zcp_set.c Support setting user properties in a channel program 2020-02-14 13:41:42 -08:00
zcp_synctask.c Add zfs.sync.snapshot_rename 2022-09-02 13:31:19 -07:00
zcp.c Simplify issig(). 2024-05-29 10:49:11 -07:00
zfeature.c Allocate zap_attribute_t from kmem instead of stack 2024-10-01 13:39:08 -07:00
zfs_byteswap.c Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
zfs_chksum.c Add generic implementation handling and SHA2 impl 2023-03-02 13:52:21 -08:00
zfs_fm.c Adding Direct IO Support 2024-09-14 13:47:59 -07:00
zfs_fuid.c Use list_remove_head() where possible. 2023-06-09 10:12:52 -07:00
zfs_impl.c Add generic implementation handling and SHA2 impl 2023-03-02 13:52:21 -08:00
zfs_ioctl.c Add ability to scrub from last scrubbed txg 2024-12-04 14:21:45 -05:00
zfs_log.c zfs_log: add flex array fields to log record structs 2024-09-27 09:18:11 -07:00
zfs_onexit.c Use list_remove_head() where possible. 2023-06-09 10:12:52 -07:00
zfs_quota.c Allocate zap_attribute_t from kmem instead of stack 2024-10-01 13:39:08 -07:00
zfs_ratelimit.c Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
zfs_replay.c zfs_log: add flex array fields to log record structs 2024-09-27 09:18:11 -07:00
zfs_rlock.c Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
zfs_sa.c Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
zfs_vnops.c Linux/vnops: implement STATX_DIOALIGN 2025-03-13 13:15:14 -04:00
zfs_znode.c Support for longnames for files/directories (Linux part) 2024-10-01 13:40:27 -07:00
zil.c zfs: add bounds checking to zil_parse (#16308) 2024-07-31 17:17:04 -07:00
zio_checksum.c Move "no name changes" from compression to checksum table 2024-11-19 06:55:27 -08:00
zio_compress.c Move "no name changes" from compression to checksum table 2024-11-19 06:55:27 -08:00
zio_inject.c zinject: add "probe" device injection type 2025-01-22 16:13:21 -08:00
zio.c Fix deduplication of overridden blocks 2025-03-13 13:27:57 -04:00
zle.c compress: change compression providers API to use ABDs 2024-08-22 16:22:24 -07:00
zrlock.c Micro-optimize zrl_remove() 2022-11-29 09:26:03 -08:00
zthr.c Switch from _Noreturn to __attribute__((noreturn)) 2022-03-23 08:51:00 -07:00
zvol.c zvol: implement platform-independent part of block cloning 2024-12-29 11:41:30 -08:00