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

James Bottomley
2010-11-18T17:19:18Z

On Thu, 2010-11-18 at 09:29 -0500, Christoph Hellwig wrote:
> On Thu, Nov 18, 2010 at 07:19:58AM -0700, Matthew Wilcox wrote:
> > I guess I was assuming that, on receiving a FALLOC_FL_PUNCH_HOLE, a
> > filesystem that was TRIM-aware would pass that information down to the
> > block device that it's mounted on. I strongly feel that we shouldn't
> > have two interfaces to do essentially the same thing.
> >
> > I guess I'm saying that you're going to have to learn about TRIM :-)
>
> Did you actually look Lukas FITRIM code (not the slight reordering here,
> but the original one). It's the ext4 version of the batched discard
> model, that is a userspace ioctl to discard free space in the
> filesystem.
>
> hole punching will free the blocks into the free space pool. If you do
> online discard it will also get discarded, but a filesystem that has
> online discard enabled doesn't need FITRIM.

Not stepping into the debate: I'm happy to see punch go to the mapping
data and FITRIM pick it up later.

However, I think it's time to question whether we actually still want to
allow online discard at all. Most of the benchmarks show it to be a net
lose to almost everything (either SSD or Thinly Provisioned arrays), so
it's become an "enable this to degrade performance" option with no
upside.

James