Comments

From: Zheng Liu <wenqing.lz@taobao.com>
Currently in ext4 the length of zero-out chunk is set to 7 file system
blocks. But if an inode has uninitailized extents from using
fallocate to preallocate space, and the workload issues many random
writes, this can cause a fragmented extent tree that will
unnecessarily grow the extent tree.
So create a new sysfs tunable, extent_max_zeroout_kb, which controls
the maximum size where blocks will be zeroed out instead of creating a
new uninitialized extent. The default of this has been sent to 32kb.
CC: Zach Brown <zab@zabbo.net>
CC: Andreas Dilger <adilger@dilger.ca>
Signed-off-by: Zheng Liu <wenqing.lz@taobao.com>Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
---
Documentation/ABI/testing/sysfs-fs-ext4 | 13 +++++++++++++
fs/ext4/ext4.h | 3 +++
fs/ext4/extents.c | 25 +++++++++++++------------
fs/ext4/super.c | 3 +++
4 files changed, 32 insertions(+), 12 deletions(-)