[dm-devel] dm-multipath test scripts

Mike Snitzer snitzer at redhat.com
Sat Feb 20 16:34:49 UTC 2016


On Sat, Feb 20 2016 at  4:42am -0500,
Hannes Reinecke <hare at suse.de> wrote:

> On 02/20/2016 07:12 AM, Mike Snitzer wrote:
> >On Fri, Feb 19 2016 at  2:42pm -0500,
> >Mike Snitzer <snitzer at redhat.com> wrote:
> >
> >>On Fri, Feb 19 2016 at  3:37am -0500,
> >>Junichi Nomura <j-nomura at ce.jp.nec.com> wrote:
> >>
> >>>On 02/19/16 09:33, Nomura Junichi wrote:
> >>>>On 02/19/16 02:17, Mike Snitzer wrote:
> >>>>>What is the last kernel version that your scripts have worked on?
> >>>>
> >>>>v4.4 worked fine. I'll check with v4.5-rc4 when I get a machine.
> >>>
> >>>v4.5-rc4 works fine, too.
> >>
> >>Have you been running with blk-mq?
> >>Either by setting CONFIG_DM_MQ_DEFAULT or:
> >>echo Y > /sys/module/dm_mod/parameters/use_blk_mq
> >>
> >>I'm seeing test_02_sdev_delete fail with blk-mq enabled.
> >
> >I only see failure if I stack dm-mq ontop of old non-mq scsi devices with:
> >
> >echo N > /sys/module/scsi_mod/parameters/use_blk_mq
> >echo Y > /sys/module/dm_mod/parameters/use_blk_mq
> >
> >If I use scsi-mq for the underlying devices all works fine (been testing
> >the latest dm-4.6 branch though, I'll go back and try stock 4.5-rc4 just
> >to double check).
> >
> >But this makes me think the novelty of having dm-mq support stacking on
> >non-blk-mq devices was misplaced.  It is a senseless config.  I'll
> >probably remove support for such stacking soon (next week).
> 
> Hmm. I must admit I really, really don't like these 'once-and-for-all'
> parameter.
> 
> ATM the only SCSI driver to support SCSI-mq properly are lpfc,
> virtio, and fnic. None of the other driver have been modified, and I
> suspect the performance might be less than stellar.
> 
> So there will be configurations where one might want to run scsi-mq
> alongside non-mq HBAs.

dm-mq already disallows such a mix though.  From dm_table_set_type():

        if (use_blk_mq) {
                /* verify _all_ devices in the table are blk-mq devices */
                list_for_each_entry(dd, devices, list)
                        if (!bdev_get_queue(dd->dm_dev->bdev)->mq_ops) {
                                DMERR("table load rejected: not all devices"
                                      " are blk-mq request-stackable");
                                return -EINVAL;
                        }
                t->type = DM_TYPE_MQ_REQUEST_BASED;

        }

But I was talking about removing support for dm-mq stacked on _all_ old
.request_fn devices.

> I would really love to see to make that more granular so that these
> configurations can run efficiently.
> I know Christoph is violently against it, but I don't really see any
> solution presenting itself at the moment.

I'm with Christoph on this.  Supporting such elaborate mixing is too
fragile.  Time would be much better spent converting drivers to properly
support scsi-mq and/or fixing scsi-mq to perform better.

> Maybe a good topic for LSF ...

Unlikely.. but don't let me stop you! ;)




More information about the dm-devel mailing list