From: Dave Chinner <david@fromorbit.com>
To: Ted Ts'o <tytso@mit.edu>
Cc: "Mike Snitzer" <snitzer@redhat.com>,
xfs@oss.sgi.com,
"device-mapper development" <dm-devel@redhat.com>,
Spelic <spelic@shiftmail.org>,
"Lukáš Czerner" <lczerner@redhat.com>,
linux-ext4@vger.kernel.org
Subject: Re: Ext4 and xfs problems in dm-thin on allocation and discard
Date: Wed, 20 Jun 2012 06:39:38 +1000 [thread overview]
Message-ID: <20120619203938.GM25389@dastard> (raw)
In-Reply-To: <20120619202130.GF22805@thunk.org>
On Tue, Jun 19, 2012 at 04:21:30PM -0400, Ted Ts'o wrote:
> On Wed, Jun 20, 2012 at 06:06:31AM +1000, Dave Chinner wrote:
> > > But in general xfs is issuing discards with much smaller extents than
> > > ext4 does, e.g.:
> >
> > THat's normal when you use -o discard - XFS sends extremely
> > fine-grained discards as the have to be issued during the checkpoint
> > commit that frees the extent. Hence they can't be aggregated like is
> > done in ext4.
>
> Actually, ext4 is also sending the discards during (well, actually,
> after) the commit which frees the extent/inode. We do aggregate them
> while the commit is open, but once the transaction is committed, we
> send out the discards. I suspect the difference is in the granularity
> of the transactions between ext4 and xfs.
Exactly - XFS transactions are fine grained, checkpoints are coarse.
We don't merge extents freed in fine grained transactions inside
checkpoints. We probably could, but, well, it's complex to do in XFS
and merging adjacent requests is something the block layer is
supposed to do....
> > As it is, no-one really should be using -o discard - it is extremely
> > inefficient compared to a background fstrim run given that discards
> > are unqueued, blocking IOs. It's just a bad idea until the lower
> > layers get fixed to allow asynchronous, vectored discards and SATA
> > supports queued discards...
>
> What Dave said. :-) This is true for both ext4 and xfs.
>
> As a result, I can very easily see there being a distinction made
> between when we *do* want to pass the discards all the way down to the
> device, and when we only want the thinp layer to process them ---
> because for current devices, sending discards down to the physical
> device is very heavyweight.
>
> I'm not sure how we could do this without a nasty layering violation,
> but some way in which we could label fstrim discards versus "we've
> committed the unlink/truncate and so thinp can feel free to reuse
> these blocks" discards would be interesting to consider.
I think if we had better discard support from the block layer, it
wouldn't matter from a filesystem POV what discard support is
present in the block layer below it. I think it's better to get the
block layer interface fixed than to add new request types/labels to
filesystems to work around the current deficiencies.
Cheers,
Dave.
--
Dave Chinner
david@fromorbit.com
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
next prev parent reply other threads:[~2012-06-19 20:39 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-06-18 21:33 Ext4 and xfs problems in dm-thin on allocation and discard Spelic
2012-06-19 1:57 ` Dave Chinner
2012-06-19 3:12 ` Mike Snitzer
2012-06-19 6:32 ` Lukáš Czerner
2012-06-19 11:29 ` Spelic
2012-06-19 12:20 ` Lukáš Czerner
2012-06-19 13:34 ` Mike Snitzer
2012-06-19 13:16 ` Mike Snitzer
2012-06-19 13:25 ` Lukáš Czerner
2012-06-19 13:30 ` Mike Snitzer
2012-06-19 13:52 ` Spelic
2012-06-19 14:05 ` Eric Sandeen
2012-06-19 14:44 ` Mike Snitzer
2012-06-19 18:48 ` Mike Snitzer
2012-06-19 20:06 ` Dave Chinner
2012-06-19 20:21 ` Ted Ts'o
2012-06-19 20:39 ` Dave Chinner [this message]
2012-06-20 9:01 ` Christoph Hellwig
2012-06-19 21:37 ` Spelic
2012-06-19 23:12 ` Dave Chinner
2012-06-20 12:11 ` Spelic
2012-06-20 22:53 ` Dave Chinner
2012-06-21 17:47 ` Mike Snitzer
2012-06-21 23:29 ` Dave Chinner
2012-07-01 14:53 ` Paolo Bonzini
2012-07-02 13:00 ` Mike Snitzer
2012-07-02 13:15 ` Paolo Bonzini
2012-06-19 14:09 ` Lukáš Czerner
2012-06-19 14:19 ` Ted Ts'o
2012-06-19 14:23 ` Eric Sandeen
2012-06-19 14:37 ` Lukáš Czerner
2012-06-19 14:43 ` [dm-devel] " Alasdair G Kergon
2012-06-19 15:28 ` Mike Snitzer
2012-06-19 16:03 ` [dm-devel] " Alasdair G Kergon
2012-06-19 19:58 ` Ted Ts'o
2012-06-19 20:44 ` Mike Snitzer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20120619203938.GM25389@dastard \
--to=david@fromorbit.com \
--cc=dm-devel@redhat.com \
--cc=lczerner@redhat.com \
--cc=linux-ext4@vger.kernel.org \
--cc=snitzer@redhat.com \
--cc=spelic@shiftmail.org \
--cc=tytso@mit.edu \
--cc=xfs@oss.sgi.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox