On Tue, Jun 19 2012 at 2:32am -0400,
Lukáš Czerner <lczerner@xxxxxxxxxx> wrote:
> On Mon, 18 Jun 2012, Mike Snitzer wrote:
> > Date: Mon, 18 Jun 2012 23:12:42 -0400
> > From: Mike Snitzer <snitzer@xxxxxxxxxx>
> > To: Dave Chinner <david@xxxxxxxxxxxxx>
> > Cc: Spelic <spelic@xxxxxxxxxxxxx>,
> > device-mapper development <dm-devel@xxxxxxxxxx>,
> > linux-ext4@xxxxxxxxxxxxxxx, xfs@xxxxxxxxxxx
> > Subject: Re: Ext4 and xfs problems in dm-thin on allocation and discard
> > On Mon, Jun 18 2012 at 9:57pm -0400,
> > Dave Chinner <david@xxxxxxxxxxxxx> wrote:
> > > On Mon, Jun 18, 2012 at 11:33:50PM +0200, Spelic wrote:
> > >
> > > > Please note that since I am above MD raid5 (I believe this is the
> > > > reason), the passdown of discards does not work, as my dmesg says:
> > > > [160508.497879] device-mapper: thin: Discard unsupported by data
> > > > device (dm-1): Disabling discard passdown.
> > > > but AFAIU, unless there is a thinp bug, this should not affect the
> > > > unmapping of thin blocks by fstrimming xfs... and in fact ext4 is
> > > > able to do that.
> > >
> > > Does ext4 report that same error?
> > That message says the underlying device doesn't support discards
> > (because it is an MD device). But the thinp device still has discards
> > enabled -- it just won't pass the discards down to the underlying data
> > device.
> > So yes, it'll happen with ext4 -- it is generated when the thin-pool
> > device is loaded (which happens independent of the filesystem that is
> > layered ontop).
> > The discards still inform the thin-pool that the corresponding extents
> > are no longer allocated.
> So do I understand correctly that even though the discard came
> through and thinp took advantage of it it still returns EOPNOTSUPP ?
No, not correct. Why are you assuming this? I must be missing
something from this discussion that led you there.
> This seems rather suboptimal. IIRC there was a discussion to add an
> option to enable/disable sending discard in thinp target down
> to the device.
> So maybe it might be a bit smarter than that and actually
> enable/disable discard pass through depending on the underlying
> support, so we do not blindly send discard down to the device even
> though it does not support it.
Yes, that is what we did.
Discards are enabled my default (including discard passdown), but if the
underlying data device doesn't support discards then the discards will
not be passed down.
And here are the feature controls that can be provided when loading the
thin-pool's DM table:
ignore_discard: disable discard
no_discard_passdown: don't pass discards down to the data device
-EOPNOTSUPP is only ever returned if 'ignore_discard' is provided.