Re: [PATCH] ext4: fix inconsistent between segment fstrim and full fstrim
From: Jan Kara
Date: Fri Dec 15 2023 - 06:11:32 EST
On Thu 14-12-23 21:06:46, yebin (H) wrote:
>
>
> On 2023/12/14 16:58, Jan Kara wrote:
> > On Thu 14-12-23 14:46:35, Ye Bin wrote:
> > > There will not issue discard cmd when do segment fstrim for ext4 fs, however,
> > > if full fstrim for the same fs will issue discard cmd.
> > > Above issue may happens as follows:
> > > Precondition:
> > > 1. Fstrim range [0, 15] and [16, 31];
> > > 2. Discard granularity is 16;
> > > Range1 Range2
> > > 1111000000000000 0000111010101011
> > > There's no free space length large or equal than 16 in 'Range1' or 'Range2'.
> > > As ext4_try_to_trim_range() only search free space among range which user
> > > specified. However, there's maximum free space length 16 in 'Range1'+ 'Range2'.
> > > To solve above issue, we need to find the longest free space to discard.
> > >
> > > Signed-off-by: Ye Bin <yebin10@xxxxxxxxxx>
> > OK, I agree that there is this behavioral difference. However is that a
> > practical problem? I mean I would not expect the range to be particularly
> > small, rather something like 1GB and then these boundary conditions don't
> > really matter. This is also sensible so that we can properly track whether
> > the whole block group was trimmed or not. Finally I'd also argue that
> > trimming outside of specified range might be unexpected for the user. So a
> > *fix* for this in my opinion lays in userspace which needs to select
> > sensible ranges to use for trimming.
> >
> > Honza
> Thanks for your reply.
> Our product fstrim entire file system, found to take a long time, thus
> affecting other processes.
> So they want to segment the file system fstrim based on the IO of the
> system. But they found
> that fragmented fstrims didn't work the same as fstrim for the entire file
> system.
> Users do not know the distribution of free blocks in the file system, and
> they do not know the
> reasonable range. The user's simple perception is that the effect of
> segmented fstrim and full
> fstrim should be consistent.
> I researched the implementation of fstrim on the XFS file system, and for
> the scenario described
> in my patch, the results of both operations are consistent.
OK, we've discussed this on yesterday's ext4 call and we've came to a
conclusion that we don't care that much and consistency among filesystems
is good so I'll go back and review your patch.
Honza
--
Jan Kara <jack@xxxxxxxx>
SUSE Labs, CR