Re: [PATCH 1/2] fs: Do not dispatch FITRIM through separate super_operation

Chris Mason
2010-12-07T16:54:39Z

Excerpts from Christoph Hellwig's message of 2010-12-07 04:27:49 -0500:
> On Fri, Nov 19, 2010 at 10:21:35AM -0500, Mark Lord wrote:
> > >I really hate to rely on this third party hearsay (from all sides), and
> > >have implement TRIM support in qemu now. I'll soon install win7 and
> > >will check out the TRIM patters myself.
> >
> > Excellent!
>
> I did a Windows 7 installation under qemu today, and the result is:

Great, thanks for testing this.

>
> - it TRIMs the whole device early during the installation
> - after that I see a constant stream of small trims during the
> installation. It's using lots of non-contiguous ranges in a single
> TRIM command, with sizes down to 8 sectors (4k) for a single range.
> - after installation there's is some background-trimming going on
> even when doing no user interaction with the VM at all.
> - removing files leads to an instant stream of TRIMs, again vectored
> and of all sizes down to 4k. Note that the TRIMs are a lot more
> instant than even with btrfs and -o discard, which delays most
> TRIMs until doing a sync.

Btrfs will do some small trims right when the block is freed, especially
in fsync heavy workloads but this is a suboptimal thing I want to fix.

The code tries to gather a whole transaction worth of trims and do them
after the commit is done.

-chris