Re: [PATCH 0/3] Provide more fine grained control over multipathing

From: Mike Snitzer
Date: Wed May 30 2018 - 15:59:51 EST


On Wed, May 30 2018 at 3:05pm -0400,
Jens Axboe <axboe@xxxxxxxxx> wrote:

> On 5/29/18 5:27 PM, Mike Snitzer wrote:
> > On Tue, May 29 2018 at 4:09am -0400,
> > Christoph Hellwig <hch@xxxxxx> wrote:
> >
> >> On Tue, May 29, 2018 at 09:22:40AM +0200, Johannes Thumshirn wrote:
> >>> For a "Plan B" we can still use the global knob that's already in
> >>> place (even if this reminds me so much about scsi-mq which at least we
> >>> haven't turned on in fear of performance regressions).
> >>>
> >>> Let's drop the discussion here, I don't think it leads to something
> >>> else than flamewars.
> >>
> >> If our plan A doesn't work we can go back to these patches. For now
> >> I'd rather have everyone spend their time on making Plan A work then
> >> preparing for contingencies. Nothing prevents anyone from using these
> >> patches already out there if they really want to, but I'd recommend
> >> people are very careful about doing so as you'll lock yourself into
> >> a long-term maintainance burden.
> >
> > Restating (for others): this patchset really isn't about contingencies.
> > It is about choice.
> >
> > Since we're at an impasse, in the hopes of soliciting definitive
> > feedback from Jens and Linus, I'm going to attempt to reset the
> > discussion for their entry.
> >
> > In summary, we have a classic example of a maintainer stalemate here:
> > 1) Christoph, as NVMe co-maintainer, doesn't want to allow native NVMe
> > multipath to actively coexist with dm-multipath's NVMe support on the
> > same host.
> > 2) I, as DM maintainer, would like to offer this flexibility to users --
> > by giving them opt-in choice to continue using existing dm-multipath
> > with NVMe. (also, both Red Hat and SUSE would like to offer this).
> >
> > There is no technical reason why they cannot coexist. Hence this simple
> > patchset that was originally offered by Johannes Thumshirn with
> > contributions from myself.
>
> Here's what I think - flag days tend to suck. They may be more convenient
> for developers, but they inflict pain on users. Sometimes they prevent
> them from moving forward, since updates are now gated on external
> dependencies. Moving forward with a new architecture is great, but
> proper care has to be given to existing users of multipath, regardless
> of how few they may be.

As I mentioned at the end of my summary (and in my first reply to this
0th header): it is on the "other" multipath toolchain to deal with
switching from "native" to "other" (by writing to 'mpath_personality').
For dm-multipath, it is multipathd that would trigger the switch from
"native" to "other" iff user opts-in by configuring multipath.conf to
own a particular NVMe subsystem's multipathing.

So users very likely won't ever have a need to write to
'mpath_personality'. And as such, they'll just default to using
"native" NVMe multipath.

> This patchset seems pretty clean and minimalist. Realistically, I'm
> guessing that SUSE and RH will ship it regardless of upstream status.

TBD really. We are keen to enable CONFIG_NVME_MULTIPATH to allow users
to use native (as the default!). But we won't be able to do that unless
we have this patchset. Because we really do _need_ to give our users
the option of continuing to use dm-multipath.

And as the Red Hat employee who would have to port it to each kernel (as
long as there is a need): _please_ don't make me do that.

PLEASE! ;)

Mike