On Tue, 19 Jun 2012, Mike Snitzer wrote: > Date: Tue, 19 Jun 2012 09:16:49 -0400 > From: Mike Snitzer > To: Lukáš Czerner > Cc: Dave Chinner , Spelic , > device-mapper development , > linux-ext4@vger.kernel.org, xfs@oss.sgi.com > Subject: Re: Ext4 and xfs problems in dm-thin on allocation and discard > > On Tue, Jun 19 2012 at 2:32am -0400, > Lukáš Czerner wrote: > > > On Mon, 18 Jun 2012, Mike Snitzer wrote: > > > > > Date: Mon, 18 Jun 2012 23:12:42 -0400 > > > From: Mike Snitzer > > > To: Dave Chinner > > > Cc: Spelic , > > > device-mapper development , > > > linux-ext4@vger.kernel.org, xfs@oss.sgi.com > > > Subject: Re: Ext4 and xfs problems in dm-thin on allocation and discard > > > > > > On Mon, Jun 18 2012 at 9:57pm -0400, > > > Dave Chinner 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. Those two paragraphs led me to that conclusion: 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. The discards still inform the thin-pool that the corresponding extents are no longer allocated. so I am a bit confused now. Why the dm-thin returned EOPNOTSUPP then ? Is that because it has been configured to ignore_discard, or it actually takes advantage of the discard but underlying device does not support it (and no_discard_passdown is not set) so it return EOPNOTSUPP ? > > > 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. Ok, so in this case 'ignore_discard' has been configured ? Thanks! -Lukas