Re: [PATCH] nvme: remove multipath module parameter

From: John Meneghini
Date: Tue Feb 18 2025 - 11:32:17 EST


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.

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
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?

/John