From: Keith Busch <kbusch@kernel.org>
To: John Meneghini <jmeneghi@redhat.com>
Cc: hch@lst.de, sagi@grimberg.me, bmarzins@redhat.com,
Bryan Gurney <bgurney@redhat.com>,
linux-nvme@lists.infradead.org, linux-kernel@vger.kernel.org,
Marco Patalano <mpatalan@redhat.com>,
axboe@kernel.dk
Subject: Re: [PATCH] nvme: remove multipath module parameter
Date: Tue, 18 Feb 2025 10:15:49 -0700 [thread overview]
Message-ID: <Z7TARX-tFY3mnuU7@kbusch-mbp> (raw)
In-Reply-To: <8a1730a1-1faf-4722-99e1-c3a85257b6f4@redhat.com>
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.
> We want to remove this parameter because it is causing confusion with users and customers who keep trying to use
> DMMP with their multipath NVMe devices.
>
> We want to remove this parameter because:
>
> 1) the upstream kernel does not support multipath nvme devices without CONFIG_NVME_MULTIPATH enabled
What do you mean by "support"? I assume you mean no one upstream will
help you debug your problems if you've set yourself up that way, and
that's probably true. The kernel currently doesn't stop you from doing
this though, so it's supported in that sense. Some people are fine doing
this on their own, they're not seeking upstream help. Changing this
would break userspace because it makes the driver fail to create device
nodes that used to show up.
> 2) the upstream kernel does not support multipath nvme devices when core.nvme_multipath is set to N
> 3) Non-multipath nvme devies are supported just fine with core.nvme_multipath is set to Y
>
> You don't need set core.nvme_multipath to N to test your devices both ways w/o recompiling the kernel.
> All of the code paths involved here are controlled by NVME_CTRL_CMIC_MULTI_CTRL and setting core.nvme_multipath
> to N doesn't do anything to help your single path NVMe devices. It doesn't remove multipath.c, reduce the code
> path length or do anything else to optimize your non-NVME_CTRL_CMIC_MULTI_CTRL devices. All it does is provide
> an escape hatch to disable the incore multipath scheduler start creating multiple /dev/nvme%d/n%d entries so
> that DMMP can be used with multipath capable NVMe devices.
>
> Personally, I'd like to remove CONFIG_NVME_MULTIPATH as well. It's just another source of confusion. Most users
> are running Linux with the the default settings for NVME_MULTIPATH. This is what Red Hat customers use and that's
> what's used upstream. So what's the point?
There are devices that report CMIC and NMIC despite being single path,
perhaps as some vestigial sr-iov feature. That adds an unnecessary layer
for all IO to go through. Having the param makes it easy to test both
possible driver paths. In production though, I'd expect to just disable
the CONFIG option if that's the behavior someoone wants, so I think the
config option ought to stay.
next prev parent reply other threads:[~2025-02-18 17:15 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-02-04 21:11 [PATCH] nvme: remove multipath module parameter Bryan Gurney
2025-02-13 20:37 ` John Meneghini
2025-02-17 8:08 ` Sagi Grimberg
2025-02-17 16:14 ` John Meneghini
2025-02-18 8:19 ` Sagi Grimberg
2025-02-18 14:05 ` John Meneghini
2025-02-18 14:57 ` John Meneghini
2025-02-18 15:06 ` Keith Busch
2025-02-18 16:31 ` John Meneghini
2025-02-18 17:15 ` Keith Busch [this message]
2025-02-18 23:06 ` John Meneghini
2025-02-18 23:30 ` Keith Busch
2025-02-19 14:47 ` Nilay Shroff
2025-02-20 11:05 ` Sagi Grimberg
2025-02-20 16:47 ` Keith Busch
2025-02-26 9:55 ` Hannes Reinecke
2025-03-05 14:15 ` Christoph Hellwig
2025-03-05 15:17 ` Keith Busch
2025-03-05 23:51 ` Christoph Hellwig
2025-03-05 23:57 ` Keith Busch
2025-03-06 0:03 ` Christoph Hellwig
2025-03-06 0:15 ` Keith Busch
2025-03-06 7:12 ` Hannes Reinecke
2025-03-06 14:18 ` Christoph Hellwig
2025-03-06 15:01 ` Keith Busch
2025-03-06 15:16 ` Christoph Hellwig
2025-03-07 0:46 ` Keith Busch
2025-03-07 15:19 ` Nilay Shroff
2025-03-07 15:43 ` Keith Busch
2025-03-09 17:23 ` Nilay Shroff
2025-03-10 13:29 ` Christoph Hellwig
2025-03-12 3:47 ` John Meneghini
2025-03-12 15:26 ` Nilay Shroff
2025-03-10 13:28 ` Christoph Hellwig
2025-03-12 3:08 ` John Meneghini
2025-02-18 14:26 ` John Meneghini
2025-02-18 16:41 ` John Meneghini
2025-02-18 14:43 ` John Meneghini
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Z7TARX-tFY3mnuU7@kbusch-mbp \
--to=kbusch@kernel.org \
--cc=axboe@kernel.dk \
--cc=bgurney@redhat.com \
--cc=bmarzins@redhat.com \
--cc=hch@lst.de \
--cc=jmeneghi@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-nvme@lists.infradead.org \
--cc=mpatalan@redhat.com \
--cc=sagi@grimberg.me \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox