Re: [PATCH 1/6] fs: add hole punching to fallocate
From: Ted Ts'o <tytso@mit.edu>
Date: 2011-01-11 21:30:07
Also in:
linux-btrfs, linux-fsdevel, linux-xfs, lkml
From: Ted Ts'o <tytso@mit.edu>
Date: 2011-01-11 21:30:07
Also in:
linux-btrfs, linux-fsdevel, linux-xfs, lkml
On Tue, Jan 11, 2011 at 04:13:42PM -0500, Lawrence Greenfield wrote:
quoted
IOWs, all they want to do is avoid the unwritten extent conversion overhead. Time has shown that a bad security/performance tradeoff decision was made 13 years ago in XFS, so I see little reason to repeat it for ext4 today....
I suspect things may have changed somewhat; both in terms of requirements and nature of cluter file systems, and the performance of various storage systems (including PCIe-attached flash devices).
I'd make use of FALLOC_FL_EXPOSE_OLD_DATA. It's not the CPU overhead of extent conversion. It's that extent conversion causes more metadata operations than what you'd have otherwise, which means systems that want to use O_DIRECT and make sure the data doesn't go away either have to write O_DIRECT|O_DSYNC or need to call fdatasync(). cluster file system implementor,
One possibility might be to make it an optional feature which is only enabled via a mount option. That way someone would have to explicit ask for this feature two ways (via a new flag to fallocate) and a mount option. It might not make sense for XFS, but for people who are using ext4 as the local storage file system back-end, and are doing all sorts of things to get the best performance, including disabling the journal, I suspect it really would make sense. So it could always be an optional-to-implement flag, that not all file systems should feel obliged to implement. - Ted