[dm-devel] [PATCH] dm-mpath: Work with blk multi-queue drivers

Christoph Hellwig hch at infradead.org
Wed Sep 24 14:27:13 UTC 2014


On Wed, Sep 24, 2014 at 11:02:30AM +0200, Hannes Reinecke wrote:
> The resistance wasn't so much for enabling multipath for block-mq,
> it was _how_ multipath should be modelled on top of block-mq.

As well as finding someone to do the work..  We now found Keith, so
thanks on that already!
> 
> With a simple enabling we actually have two layers of I/O
> scheduling; once in multipathing to select between the individual
> queues, and once in block-mq to select the correct hardware context.
> So we end up with a four-tiered hierarchy:

Assuming we have multiple queues in the low level driver..

> However, this looks like a good starting point.
> I'll give it a go and see how far I'll be getting with it.

Yes, the first priority should be to make dm-mpath to work on a blk-mq
device at all, which is very important for scsi-mq adoption, which
will include a lot of single queue devices.  After that come various
levels of efficiency optimizations.  The first priority should be
to get rid of the horrible bio clones by hooking into the right place
in the I/O completion, second one would be to revamp the I/O submission
path, for example by hooking into ->map_queue.  With fairly limited work
that does sound doable as long as all paths use the same HBA/driver
which is not an unusual limitation in other multipathing
implementations.




More information about the dm-devel mailing list