Re: [PATCH 1/1] block: rework flush sequencing for blk-mq

From: Mike Snitzer
Date: Fri Mar 14 2014 - 10:13:43 EST


On Fri, Mar 14 2014 at 9:23am -0400,
Christoph Hellwig <hch@xxxxxxxxxxxxx> wrote:

> On Fri, Mar 14, 2014 at 09:00:21AM -0400, Mike Snitzer wrote:
> > > Getting a little upset, eh? I didn't say it's broken, I said it gets
> > > very little testing. The regression from me was found like so many
> > > before only after it was backported o some enterprise kernel.
> >
> > Even _really_ basic dm-multipath testing would've uncovered this bug.
>
> But major testing using dm, md and various low-level drivers didn't. Do
> you really expect everyone to remember to specificly test dm-multipath
> for a core block change? Without a nicely documented way to do it?
>
> That being said I should have remembered that it's special, but even I
> didn't and I'm sorry about that.

I was more reacting to the assertion you made like multipath regresses
all the time. I'm not faulting you at all for not having tested
multipath. Hell, I even forget to test multipath more than I should.
/me says with shame

I'll work to add basic coverage for dm-multipath to the
device-mapper-test-suite.

> > > I think the problem here is two-fold:
> > > a) the hardware you use with dm-multipath isn't widely available.
> > > b) it uses a very special code path in the block layer no one else uses
> > >
> > > a) might be fixable by having some RDAC or similar emulation in qemu if
> > > someone wants to spend the effort.
> >
> > The regression from the commit in question was easily reproduced/tested
> > using scsi_debug. Just start the multipathd service and any scsi_debug
> > device in the system will get multipath'd.
>
> Really? That sounds a like a bug in the INQUIRY information returned by
> scsi_debug. Either way please write up these things in Documentation so
> you can point people at it easily.

Yeah, not sure why single path scsi_debug "just works", maybe it is a
"feature" of the older multipathd I have kicking around?, but for basic
data path testing scsi_debug is a quick means to an end. I can look
closer at _why_ it gets multipathd in a bit. But maybe Ben or Hannes
will have quicker insight?

For me, if multipathd is running, if I issue the following a multipath
device gets layered ontop of the associated scsi_debug created sd
device: modprobe scsi_debug dev_size_mb=1024

I think it useful to have scsi_debug work with multipath. I know people
in Red Hat's QE organization have even simulated multiple paths with
it.. but I don't recall if they had to hack scsi_debug to do that. I'll
try to find out.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/