Re: [PATCH] nvme: remove multipath module parameter

From: Christoph Hellwig
Date: Mon Mar 10 2025 - 09:28:37 EST


On Thu, Mar 06, 2025 at 05:46:46PM -0700, Keith Busch wrote:
> On Thu, Mar 06, 2025 at 04:16:54PM +0100, Christoph Hellwig wrote:
> > On Thu, Mar 06, 2025 at 08:01:19AM -0700, Keith Busch wrote:
> >
> > > Or consider a true multiport PCIe where each port connects to a
> > > different host. Each host sees a single port so they're not using
> > > multipath capabilities, and the admin wants the MD behavior that removes
> > > a disk on hot plug. Or even if one host sees both paths of a multiport
> > > PCIe, they still might want that hot plug behavior. The module parameter
> > > makes that possible, so some equivalent should be available before
> > > removing it.
> >
> > A module-wide parameter is absolutely the wrong way to configure it.
> > You'd ad best want it per-controller or even per-namespace. One
> > tradeoff would be to disable the multipath code for private namespaces,
> > although that would cause problems when rescanning changes the flag.
>
> It's not really about private vs. shared namespaces, though.

PArt of it is about that. A private namespace can't have another
path.


> There
> really is no programatic way for the driver to know what behavior the
> admin needs out of their system without user input. If you don't want a
> module parameter, then the driver will just have to default to
> something, then the user will have to do something to change it later.
> Not very pleasant compared to a simple one time boot parameter.

The point is that different devices want different behavior. Think of
a fabrics attached array vs a usb4 dongle used by the admin.