[PATCH] nvme: remove multipath module parameter

Nilay Shroff nilay at linux.ibm.com
Fri Mar 7 07:19:09 PST 2025



On 3/7/25 6:16 AM, 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. 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.
> 
I think always creating multipath head node even for the disk which doesn't 
have CMIC/NMIC capability should be useful. That way, we may then be able 
to remove multipath module parameter? In fact, you already mentioned about
it in one of your previous message. I see two approaches (one of them you 
proposed and another one Christoph proposed: 
https://lore.kernel.org/linux-nvme/Y+1aKcQgbskA2tra@kbusch-mbp.dhcp.thefacebook.com/). 

Maybe in first cut we should create multipath head disk node always for 
single/multi ported NVMe disk. Later we may enhance it and allow pinning the 
head node for hotplug events so that head node dev name remains consistent 
across disk add/remove hotplug events.

Thanks,
--Nilay



More information about the Linux-nvme mailing list