[dm-devel] dm-mirror: do not degrade the mirror on discard error
James Bottomley
James.Bottomley at HansenPartnership.com
Wed Feb 18 17:54:07 UTC 2015
On Wed, 2015-02-18 at 12:10 -0500, Mike Snitzer wrote:
> On Wed, Feb 18 2015 at 11:29am -0500,
> Mikulas Patocka <mpatocka at redhat.com> wrote:
>
> >
> >
> > On Wed, 18 Feb 2015, James Bottomley wrote:
> >
> > > On Tue, 2015-02-17 at 14:59 -0500, Mikulas Patocka wrote:
> > > >
> > > > On Mon, 16 Feb 2015, James Bottomley wrote:
> > > >
> > > > > I already said this in the first sentence of the last paragraph of my
> > > > > email. The point isn't what it does today it's what might happen
> > > > > tomorrow and the principle of least surprise. One day, someone might
> > > > > propagate the error. When that happens, they'll be surprised to find
> > > > > every discard failure reported as -ENOTSUPP and it will cost someone
> > > > > time and effort to investigate and fix. If you just propagate the error
> > > > > today, you save all that work in the future.
> > > > >
> > > > > James
> > > >
> > > > The question is if this case is so important that it justifies dm-io
> > > > change.
> > >
> > > I'm not sure I follow. Are you saying no-one would ever want to
> > > propagate the error? I think that would be short sighted.
> >
> > The SATA device may report success on the trim command and may not trim
> > any data. I know this is stupid, but the standard allows the device to do
> > that and the devices are doing that. See this thread
> > http://www.spinics.net/lists/linux-scsi/msg80297.html
> >
> > Consequently, if some filesystem or other application contains the logic
> > "if trim succeeded, do something", it is broken, because the SSD may
> > ignore the command and report success.
> >
> > > > The SSD may ignore discards and report them as sucesfully completed, so no
> > > > one should depend on the return code anyway. The error code may be used as
> > > > a hint that it is futile to send more discards in the future, but relying
> > > > on the return code is already not correct.
> > >
> > > That's not a good way of interpreting the standards.
> >
> > It doesn't matter how do you interpret the standard. It does matter how do
> > SSD vendors interpret it. And they interpret it in such a way that it is
> > OK to report success and not trim any data. I know it doesn't make much
> > sense to standardize the flag "Return Zero After Trim" and then specify
> > that the device (despite having RZAT set) may ignore the trim command and
> > not return zeroes on the trimmed data. But it's the way it is.
>
> Let's please set this thread to one side. I already offered my thoughts
> in this thread, see:
> https://www.redhat.com/archives/dm-devel/2015-February/msg00076.html
>
> I'm not interested in wiring up the actual error return for dm-mirror's
> benefit. If/when other dm-io consumers have a need to differentiate
> between error codes we'll fix dm-io as needed.
Yep, concur ... the point I've been obviously failing to make is that
all the world is not an SSD.
James
More information about the dm-devel
mailing list