xfs
[Top] [All Lists]

Re: [PATCH 0/6 v2] Introduce FALLOC_FL_ZERO_RANGE flag for fallocate

To: Dave Chinner <david@xxxxxxxxxxxxx>
Subject: Re: [PATCH 0/6 v2] Introduce FALLOC_FL_ZERO_RANGE flag for fallocate
From: Lukáš Czerner <lczerner@xxxxxxxxxx>
Date: Thu, 13 Mar 2014 11:14:59 +0100 (CET)
Cc: linux-ext4@xxxxxxxxxxxxxxx, tytso@xxxxxxx, linux-fsdevel@xxxxxxxxxxxxxxx, xfs@xxxxxxxxxxx
Delivered-to: xfs@xxxxxxxxxxx
In-reply-to: <20140313084936.GF4263@dastard>
References: <1393355679-11160-1-git-send-email-lczerner@xxxxxxxxxx> <20140313084936.GF4263@dastard>
User-agent: Alpine 2.00 (LFD 1167 2008-08-23)
On Thu, 13 Mar 2014, Dave Chinner wrote:

> Date: Thu, 13 Mar 2014 19:49:36 +1100
> From: Dave Chinner <david@xxxxxxxxxxxxx>
> To: Lukas Czerner <lczerner@xxxxxxxxxx>
> Cc: linux-ext4@xxxxxxxxxxxxxxx, tytso@xxxxxxx, linux-fsdevel@xxxxxxxxxxxxxxx,
>     xfs@xxxxxxxxxxx
> Subject: Re: [PATCH 0/6 v2] Introduce FALLOC_FL_ZERO_RANGE flag for fallocate
> 
> On Tue, Feb 25, 2014 at 08:14:33PM +0100, Lukas Czerner wrote:
> > Introduce new FALLOC_FL_ZERO_RANGE flag for fallocate. This has the same
> > functionality as xfs ioctl XFS_IOC_ZERO_RANGE.
> > 
> > It can be used to convert a range of file to zeros preferably without
> > issuing data IO. Blocks should be preallocated for the regions that span
> > holes in the file, and the entire range is preferable converted to
> > unwritten extents - even though file system may choose to zero out the
> > extent or do whatever which will result in reading zeros from the range
> > while the range remains allocated for the file.
> > 
> > This can be also used to preallocate blocks past EOF in the same way as
> > with fallocate. Flag FALLOC_FL_KEEP_SIZE which should cause the inode
> > size to remain the same.
> > 
> > You can test this feature yourself using xfstests, of fallocate(1) however
> > you'll need patches for util_linux, xfsprogs and xfstests which are going to
> > follow soon.
> > 
> > I tested this mostly with a subset of xfstests using fsx and fsstress and
> > even with new generic/290 which is just a copy of xfs/290 using fzero
> > command for xfs_io instead of zero (which uses ioctl). I was testing on
> > x86_64 and ppc64 with block sizes of 1024, 2048 and 4096.
> > 
> > ./check generic/076 generic/232 generic/013 generic/070 generic/269 
> > generic/083
> > generic/117 generic/068 generic/231 generic/127 generic/091 generic/075
> > generic/112 generic/263 generic/091 generic/075 generic/256 generic/255
> > generic/316 generic/300 generic/290 ext4/242;
> > 
> > Note that there is a work in progress on FALLOC_FL_COLLAPSE_RANGE which
> > touches the same area as this pach set does, so we should figure out
> > which one should go first and modify the other on top of it.
> > 
> > This has been based on top of xfs-collapse-range so it does not contain ext4
> > collapse range changes.
> 
> Lukas, I have merged patches 4 and 6 into the xfs-collapse-branch.
> That branch should now remain stable, so you can rebase all the ext4
> collapse range and zero range bits on top of tha branch and Ted can
> pull it into the ext4 tree if he wants to pull it in.
> 
> Cheers,
> 
> Dave.

Hi Dave,

that's great thanks! Btw you probably meant branch
xfs-collapse-range and those patches are already based on that
branch so it should apply cleanly. Now we have to figure out the
order in which we're going to take zero-range and collapse-range
into ext4.

Thanks!
-Lukas

<Prev in Thread] Current Thread [Next in Thread>