Re: [PATCH] nvme: remove multipath module parameter

From: Sagi Grimberg
Date: Thu Feb 20 2025 - 06:06:48 EST





On 19/02/2025 16:47, Nilay Shroff wrote:

On 2/18/25 10:45 PM, Keith Busch wrote:
On Tue, Feb 18, 2025 at 11:31:58AM -0500, John Meneghini wrote:
On 2/18/25 10:06 AM, Keith Busch wrote:
On Thu, Feb 13, 2025 at 03:37:28PM -0500, John Meneghini wrote:
Keith, Christoph and Sagi,

This patch has been fully tested and analyzed by Red Hat's QA group and no
unexpected side effects or regressions have been found. Both NVMe/FC and NVMe/TCP
have been tested. Our QE engineer has asked me to report this upstream.
What's the harm in leaving the parameter? *I* use it so I can test both
ways without needing to compile multiple kernels.
LOL. We've been talking about this since 2017. The goal has always been to remove support for DMMP with NVMe.
I understand that disabling nvme native mp it is required for device
mapper, and I get you want to prevent the possibility of anyone using
dm-mp with nvme, but that isn't the only user that wants to see all
namespace paths.
Agreed! I do have nvme multi-controller disks and I toggle multipath module parameter to
test it both ways. One with each individual path to a shared namespace and another with
a single head node path and then let IO policy determine which path to choose for sending
IO to disk.
In fact, we have few nvme blktests which only runs if device is configured with single path
and so testing it on multi-controller nvme disk would require us to turn off multipath module
parameter. In that way this parameter is very handy. My typical way of
toggling this parameter is:
1. disable multipath
# rmmod nvme
# rmmod nvme_core
# modprobe nvme_core multipath=0
# modprobe nvme

Now I could run all nvme blktests which require us disable multipath.

2. enable multipath:
# rmmod nvme
# rmmmod nvme_core
# modprobe nvme_core multipath=1
# modprobe nvme

Now if we get away with multipath parameter then it means we have to re-compile kernel
disabling CONFIG_NVME_MULTIPATH option and that's something we may want to avoid,
if possible.

Having said that I'm not against this patch however we certainly have users who would
be using multipath parameter and taking away this parameter may break those user
application.

Sounds like the user application is already broken. This like any modparam is not guaranteed
to stay, and we already have been warning users this is temporary and will be removed for years.

So I'm wondering why is it not possible for RedHat to let their customer
know the fact that starting with RHEL-10, we don't support DMMP for NVMe device even
though the multipath module parameter is present?

I get the testing argument, but I don't think its sufficient to keep exposing a user facing
modparam.

This discussion is not specific to RHEL, if there is a real use-case that we are interested in supporting,
we can change our minds and keep it (and simply remove the log msg), but I haven't heard any real
life use-cases thus far.