[PATCH 1/1] nvme: always enable multipath

Nilay Shroff nilay at linux.ibm.com
Thu Nov 21 22:26:44 PST 2024



On 11/22/24 03:33, Bryan Gurney wrote:
> Since device-mapper multipath will no longer be operating on NVMe
> devices, there is no longer a need to set CONFIG_NVME_MULTIPATH=n.
> 
> Always enable NVMe multipath, remove CONFIG_NVME_MULTIPATH, and use
> the code paths that would be used if CONFIG_NVME_MULTIPATH=y.
> 
> Reviewed-by: John Meneghini <jmeneghi at redhat.com>
> Tested-by: Bryan Gurney <bgurney at redhat.com>
> Signed-off-by: Bryan Gurney <bgurney at redhat.com>
> ---
>  arch/loongarch/configs/loongson3_defconfig |  1 -
>  arch/powerpc/configs/skiroot_defconfig     |  1 -
>  drivers/nvme/host/Kconfig                  |  9 --
>  drivers/nvme/host/Makefile                 |  3 +-
>  drivers/nvme/host/core.c                   | 17 +---
>  drivers/nvme/host/ioctl.c                  |  3 +-
>  drivers/nvme/host/multipath.c              | 10 +--
>  drivers/nvme/host/nvme.h                   | 97 +---------------------
>  drivers/nvme/host/sysfs.c                  |  6 --
>  9 files changed, 7 insertions(+), 140 deletions(-)

I applied the above changes to my kernel tree and ran the below blktests:

# ./check nvme/033 nvme/034 nvme/035 nvme/036 nvme/037 nvme/039 
nvme/033 => nvme0n1 (tr=loop) (create and connect to an NVMeOF target with a passthru controller) [not run]
    /dev/nvme0n1 is a NVMe multipath device
nvme/034 => nvme0n1 (tr=loop) (run data verification fio job on an NVMeOF passthru controller) [not run]
    /dev/nvme0n1 is a NVMe multipath device
nvme/035 => nvme0n1 (tr=loop) (run mkfs and data verification fio job on an NVMeOF passthru controller) [not run]
    /dev/nvme0n1 is a NVMe multipath device
nvme/036 => nvme0n1 (tr=loop) (test NVMe reset command on an NVMeOF target with a passthru controller) [not run]
    /dev/nvme0n1 is a NVMe multipath device
nvme/037 => nvme0n1 (tr=loop) (test deletion of NVMeOF passthru controllers immediately after setup) [not run]
    /dev/nvme0n1 is a NVMe multipath device
nvme/039 => nvme0n1 (test error logging)                     [not run]
    /dev/nvme0n1 is a NVMe multipath device

As we can see here, the above tests were skipped because the test detects 
that the device (/dev/nvme0n1) is a multipath device. However, in fact, 
the test device is NOT a multipath. So I think we need to update the above 
tests. We may submit another patch to blktest and update above tests once 
your changes are merged upstream.

Otherwise, changes look good to me:
Reviewed-by: Nilay Shroff <nilay at linux.ibm.com> 



More information about the Linux-nvme mailing list