[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <b2c9df64-0afc-46cd-9e8d-6a3f41a4f1c7@linux.ibm.com>
Date: Fri, 7 Mar 2025 20:49:09 +0530
From: Nilay Shroff <nilay@...ux.ibm.com>
To: Keith Busch <kbusch@...nel.org>, Christoph Hellwig <hch@....de>
Cc: Hannes Reinecke <hare@...e.de>, Sagi Grimberg <sagi@...mberg.me>,
John Meneghini <jmeneghi@...hat.com>, bmarzins@...hat.com,
Bryan Gurney <bgurney@...hat.com>, linux-nvme@...ts.infradead.org,
linux-kernel@...r.kernel.org, Marco Patalano <mpatalan@...hat.com>,
axboe@...nel.dk
Subject: Re: [PATCH] nvme: remove multipath module parameter
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
Powered by blists - more mailing lists