mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-22 02:27:36 +03:00
Default to zfs_dmu_offset_next_sync=1
Strict hole reporting was previously disabled by default as a
performance optimization. However, this has lead to confusion
over the expected behavior and a variety of workarounds being
adopted by consumers of ZFS. Change the default behavior to
always report holes and force the TXG sync.
Reviewed-by: Matthew Ahrens <mahrens@delphix.com>
Reviewed-by: Tony Hutter <hutter2@llnl.gov>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Upstream-commit: 05b3eb6d23
Ref: #13261
Closes #12746
This commit is contained in:
+8
-4
@@ -73,9 +73,13 @@ int zfs_nopwrite_enabled = 1;
|
||||
unsigned long zfs_per_txg_dirty_frees_percent = 5;
|
||||
|
||||
/*
|
||||
* Enable/disable forcing txg sync when dirty in dmu_offset_next.
|
||||
* Enable/disable forcing txg sync when dirty checking for holes with lseek().
|
||||
* By default this is enabled to ensure accurate hole reporting, it can result
|
||||
* in a significant performance penalty for lseek(SEEK_HOLE) heavy workloads.
|
||||
* Disabling this option will result in holes never being reported in dirty
|
||||
* files which is always safe.
|
||||
*/
|
||||
int zfs_dmu_offset_next_sync = 0;
|
||||
int zfs_dmu_offset_next_sync = 1;
|
||||
|
||||
/*
|
||||
* Limit the amount we can prefetch with one call to this amount. This
|
||||
@@ -2110,8 +2114,8 @@ restart:
|
||||
* If the zfs_dmu_offset_next_sync module option is enabled
|
||||
* then strict hole reporting has been requested. Dirty
|
||||
* dnodes must be synced to disk to accurately report all
|
||||
* holes. When disabled (the default) dirty dnodes are
|
||||
* reported to not have any holes which is always safe.
|
||||
* holes. When disabled dirty dnodes are reported to not
|
||||
* have any holes which is always safe.
|
||||
*
|
||||
* When called by zfs_holey_common() the zp->z_rangelock
|
||||
* is held to prevent zfs_write() and mmap writeback from
|
||||
|
||||
Reference in New Issue
Block a user