* [PATCH v1 0/2] Remove CONFIG_NVME_MULTIPATH option
@ 2023-07-19 8:41 Daniel Wagner
2023-07-19 8:41 ` [PATCH v1 1/2] nvme: drop multipath config option Daniel Wagner
2023-07-19 8:41 ` [PATCH v1 2/2] nvme: remove warning for shared ns when multipath=N Daniel Wagner
0 siblings, 2 replies; 13+ messages in thread
From: Daniel Wagner @ 2023-07-19 8:41 UTC (permalink / raw)
To: linux-nvme; +Cc: Daniel Wagner
> "Support for shared namespaces without CONFIG_NVME_MULTIPATH is deprecated
> and will be removed in Linux 6.0\n."
patch1: As stated in the first warning the multipath config option has been
scheduled to be removed for 6.0. As we are past this point let's drop it.
> "Found shared namespace %d, but multipathing not supported.\n"
patch2: The second warning is causing some confusion for Dell's PowerPath
users. The native multipath support has been deliberty disabled, because
it PowerPath module will provide it. As the native multipath is enabled
per default and always built-in, just drop it.
Daniel Wagner (2):
nvme: drop multipath config option
nvme: remove warning for shared ns when multipath=N
drivers/nvme/host/Kconfig | 9 ----
drivers/nvme/host/Makefile | 4 +-
drivers/nvme/host/core.c | 12 -----
drivers/nvme/host/ioctl.c | 2 -
drivers/nvme/host/nvme.h | 92 +-------------------------------------
drivers/nvme/host/pr.c | 3 +-
drivers/nvme/host/sysfs.c | 6 ---
7 files changed, 4 insertions(+), 124 deletions(-)
--
2.41.0
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH v1 1/2] nvme: drop multipath config option
2023-07-19 8:41 [PATCH v1 0/2] Remove CONFIG_NVME_MULTIPATH option Daniel Wagner
@ 2023-07-19 8:41 ` Daniel Wagner
2023-07-19 10:04 ` Keith Busch
2023-07-19 8:41 ` [PATCH v1 2/2] nvme: remove warning for shared ns when multipath=N Daniel Wagner
1 sibling, 1 reply; 13+ messages in thread
From: Daniel Wagner @ 2023-07-19 8:41 UTC (permalink / raw)
To: linux-nvme; +Cc: Daniel Wagner
Commit ce8d78616a6b ("nvme: warn about shared namespaces without
CONFIG_NVME_MULTIPATH") added the message that CONFIG_NVME_MULTIPATH
is going to be removed with 6.0. As we are past this point, let's
remove the option.
Signed-off-by: Daniel Wagner <dwagner@suse.de>
---
drivers/nvme/host/Kconfig | 9 ----
drivers/nvme/host/Makefile | 4 +-
drivers/nvme/host/core.c | 9 +---
drivers/nvme/host/ioctl.c | 2 -
drivers/nvme/host/nvme.h | 92 +-------------------------------------
drivers/nvme/host/pr.c | 3 +-
drivers/nvme/host/sysfs.c | 6 ---
7 files changed, 5 insertions(+), 120 deletions(-)
diff --git a/drivers/nvme/host/Kconfig b/drivers/nvme/host/Kconfig
index 2f6a7f8c94e8..155b326ddf7e 100644
--- a/drivers/nvme/host/Kconfig
+++ b/drivers/nvme/host/Kconfig
@@ -15,15 +15,6 @@ config BLK_DEV_NVME
To compile this driver as a module, choose M here: the
module will be called nvme.
-config NVME_MULTIPATH
- bool "NVMe multipath support"
- depends on NVME_CORE
- help
- This option enables support for multipath access to NVMe
- subsystems. If this option is enabled only a single
- /dev/nvmeXnY device will show up for each NVMe namespace,
- even if it is accessible through multiple controllers.
-
config NVME_VERBOSE_ERRORS
bool "NVMe verbose error reporting"
depends on NVME_CORE
diff --git a/drivers/nvme/host/Makefile b/drivers/nvme/host/Makefile
index c7c3cf202d12..86b3304aee26 100644
--- a/drivers/nvme/host/Makefile
+++ b/drivers/nvme/host/Makefile
@@ -10,10 +10,10 @@ obj-$(CONFIG_NVME_FC) += nvme-fc.o
obj-$(CONFIG_NVME_TCP) += nvme-tcp.o
obj-$(CONFIG_NVME_APPLE) += nvme-apple.o
-nvme-core-y += core.o ioctl.o sysfs.o pr.o
+nvme-core-y += core.o ioctl.o sysfs.o pr.o \
+ multipath.o
nvme-core-$(CONFIG_NVME_VERBOSE_ERRORS) += constants.o
nvme-core-$(CONFIG_TRACING) += trace.o
-nvme-core-$(CONFIG_NVME_MULTIPATH) += multipath.o
nvme-core-$(CONFIG_BLK_DEV_ZONED) += zns.o
nvme-core-$(CONFIG_FAULT_INJECTION_DEBUG_FS) += fault_inject.o
nvme-core-$(CONFIG_NVME_HWMON) += hwmon.o
diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c
index 37b6fa746662..d08371967ce3 100644
--- a/drivers/nvme/host/core.c
+++ b/drivers/nvme/host/core.c
@@ -3348,9 +3348,7 @@ static struct nvme_ns_head *nvme_alloc_ns_head(struct nvme_ctrl *ctrl,
size_t size = sizeof(*head);
int ret = -ENOMEM;
-#ifdef CONFIG_NVME_MULTIPATH
size += num_possible_nodes() * sizeof(struct nvme_ns *);
-#endif
head = kzalloc(size, GFP_KERNEL);
if (!head)
@@ -3497,13 +3495,10 @@ static int nvme_init_ns_head(struct nvme_ns *ns, struct nvme_ns_info *info)
goto out_put_ns_head;
}
- if (!multipath) {
+ if (!multipath)
dev_warn(ctrl->device,
"Found shared namespace %d, but multipathing not supported.\n",
info->nsid);
- dev_warn_once(ctrl->device,
- "Support for shared namespaces without CONFIG_NVME_MULTIPATH is deprecated and will be removed in Linux 6.0\n.");
- }
}
list_add_tail_rcu(&ns->siblings, &head->list);
@@ -4124,13 +4119,11 @@ static bool nvme_handle_aen_notice(struct nvme_ctrl *ctrl, u32 result)
queue_work(nvme_wq, &ctrl->fw_act_work);
}
break;
-#ifdef CONFIG_NVME_MULTIPATH
case NVME_AER_NOTICE_ANA:
if (!ctrl->ana_log_buf)
break;
queue_work(nvme_wq, &ctrl->ana_work);
break;
-#endif
case NVME_AER_NOTICE_DISC_CHANGED:
ctrl->aen_result = result;
break;
diff --git a/drivers/nvme/host/ioctl.c b/drivers/nvme/host/ioctl.c
index 5c3250f36ce7..e3603644fbdd 100644
--- a/drivers/nvme/host/ioctl.c
+++ b/drivers/nvme/host/ioctl.c
@@ -793,7 +793,6 @@ int nvme_ns_chr_uring_cmd_iopoll(struct io_uring_cmd *ioucmd,
rcu_read_unlock();
return ret;
}
-#ifdef CONFIG_NVME_MULTIPATH
static int nvme_ns_head_ctrl_ioctl(struct nvme_ns *ns, unsigned int cmd,
void __user *argp, struct nvme_ns_head *head, int srcu_idx,
bool open_for_write)
@@ -883,7 +882,6 @@ int nvme_ns_head_chr_uring_cmd(struct io_uring_cmd *ioucmd,
srcu_read_unlock(&head->srcu, srcu_idx);
return ret;
}
-#endif /* CONFIG_NVME_MULTIPATH */
int nvme_dev_uring_cmd(struct io_uring_cmd *ioucmd, unsigned int issue_flags)
{
diff --git a/drivers/nvme/host/nvme.h b/drivers/nvme/host/nvme.h
index f35647c470af..c7ccab60cf47 100644
--- a/drivers/nvme/host/nvme.h
+++ b/drivers/nvme/host/nvme.h
@@ -169,9 +169,7 @@ struct nvme_request {
u8 retries;
u8 flags;
u16 status;
-#ifdef CONFIG_NVME_MULTIPATH
unsigned long start_time;
-#endif
struct nvme_ctrl *ctrl;
};
@@ -336,7 +334,6 @@ struct nvme_ctrl {
struct work_struct fw_act_work;
unsigned long events;
-#ifdef CONFIG_NVME_MULTIPATH
/* asymmetric namespace access: */
u8 anacap;
u8 anatt;
@@ -347,7 +344,6 @@ struct nvme_ctrl {
size_t ana_log_size;
struct timer_list anatt_timer;
struct work_struct ana_work;
-#endif
#ifdef CONFIG_NVME_AUTH
struct work_struct dhchap_auth_work;
@@ -412,9 +408,7 @@ struct nvme_subsystem {
u16 vendor_id;
u16 awupf; /* 0's based awupf value. */
struct ida ns_ida;
-#ifdef CONFIG_NVME_MULTIPATH
enum nvme_iopolicy iopolicy;
-#endif
};
/*
@@ -450,7 +444,6 @@ struct nvme_ns_head {
struct device cdev_device;
struct gendisk *disk;
-#ifdef CONFIG_NVME_MULTIPATH
struct bio_list requeue_list;
spinlock_t requeue_lock;
struct work_struct requeue_work;
@@ -458,12 +451,11 @@ struct nvme_ns_head {
unsigned long flags;
#define NVME_NSHEAD_DISK_LIVE 0
struct nvme_ns __rcu *current_path[];
-#endif
};
static inline bool nvme_ns_head_multipath(struct nvme_ns_head *head)
{
- return IS_ENABLED(CONFIG_NVME_MULTIPATH) && head->disk;
+ return head->disk;
}
enum nvme_ns_features {
@@ -478,10 +470,8 @@ struct nvme_ns {
struct nvme_ctrl *ctrl;
struct request_queue *queue;
struct gendisk *disk;
-#ifdef CONFIG_NVME_MULTIPATH
enum nvme_ana_state ana_state;
u32 ana_grpid;
-#endif
struct list_head siblings;
struct kref kref;
struct nvme_ns_head *head;
@@ -874,7 +864,6 @@ extern const struct block_device_operations nvme_bdev_ops;
void nvme_delete_ctrl_sync(struct nvme_ctrl *ctrl);
struct nvme_ns *nvme_find_path(struct nvme_ns_head *head);
-#ifdef CONFIG_NVME_MULTIPATH
static inline bool nvme_ctrl_use_ana(struct nvme_ctrl *ctrl)
{
return ctrl->ana_log_buf != NULL;
@@ -914,85 +903,6 @@ extern struct device_attribute dev_attr_ana_grpid;
extern struct device_attribute dev_attr_ana_state;
extern struct device_attribute subsys_attr_iopolicy;
-#else
-#define multipath false
-static inline bool nvme_ctrl_use_ana(struct nvme_ctrl *ctrl)
-{
- return false;
-}
-static inline void nvme_failover_req(struct request *req)
-{
-}
-static inline void nvme_kick_requeue_lists(struct nvme_ctrl *ctrl)
-{
-}
-static inline int nvme_mpath_alloc_disk(struct nvme_ctrl *ctrl,
- struct nvme_ns_head *head)
-{
- return 0;
-}
-static inline void nvme_mpath_add_disk(struct nvme_ns *ns, __le32 anagrpid)
-{
-}
-static inline void nvme_mpath_remove_disk(struct nvme_ns_head *head)
-{
-}
-static inline bool nvme_mpath_clear_current_path(struct nvme_ns *ns)
-{
- return false;
-}
-static inline void nvme_mpath_revalidate_paths(struct nvme_ns *ns)
-{
-}
-static inline void nvme_mpath_clear_ctrl_paths(struct nvme_ctrl *ctrl)
-{
-}
-static inline void nvme_mpath_shutdown_disk(struct nvme_ns_head *head)
-{
-}
-static inline void nvme_trace_bio_complete(struct request *req)
-{
-}
-static inline void nvme_mpath_init_ctrl(struct nvme_ctrl *ctrl)
-{
-}
-static inline int nvme_mpath_init_identify(struct nvme_ctrl *ctrl,
- struct nvme_id_ctrl *id)
-{
- if (ctrl->subsys->cmic & NVME_CTRL_CMIC_ANA)
- dev_warn(ctrl->device,
-"Please enable CONFIG_NVME_MULTIPATH for full support of multi-port devices.\n");
- return 0;
-}
-static inline void nvme_mpath_update(struct nvme_ctrl *ctrl)
-{
-}
-static inline void nvme_mpath_uninit(struct nvme_ctrl *ctrl)
-{
-}
-static inline void nvme_mpath_stop(struct nvme_ctrl *ctrl)
-{
-}
-static inline void nvme_mpath_unfreeze(struct nvme_subsystem *subsys)
-{
-}
-static inline void nvme_mpath_wait_freeze(struct nvme_subsystem *subsys)
-{
-}
-static inline void nvme_mpath_start_freeze(struct nvme_subsystem *subsys)
-{
-}
-static inline void nvme_mpath_default_iopolicy(struct nvme_subsystem *subsys)
-{
-}
-static inline void nvme_mpath_start_request(struct request *rq)
-{
-}
-static inline void nvme_mpath_end_request(struct request *rq)
-{
-}
-#endif /* CONFIG_NVME_MULTIPATH */
-
int nvme_revalidate_zones(struct nvme_ns *ns);
int nvme_ns_report_zones(struct nvme_ns *ns, sector_t sector,
unsigned int nr_zones, report_zones_cb cb, void *data);
diff --git a/drivers/nvme/host/pr.c b/drivers/nvme/host/pr.c
index 391b1465ebfd..fa2ec916a762 100644
--- a/drivers/nvme/host/pr.c
+++ b/drivers/nvme/host/pr.c
@@ -97,8 +97,7 @@ static int nvme_sc_to_pr_err(int nvme_sc)
static int nvme_send_pr_command(struct block_device *bdev,
struct nvme_command *c, void *data, unsigned int data_len)
{
- if (IS_ENABLED(CONFIG_NVME_MULTIPATH) &&
- bdev->bd_disk->fops == &nvme_ns_head_ops)
+ if (bdev->bd_disk->fops == &nvme_ns_head_ops)
return nvme_send_ns_head_pr_command(bdev, c, data, data_len);
return nvme_send_ns_pr_command(bdev->bd_disk->private_data, c, data,
diff --git a/drivers/nvme/host/sysfs.c b/drivers/nvme/host/sysfs.c
index 212e1b05d298..47aef949c271 100644
--- a/drivers/nvme/host/sysfs.c
+++ b/drivers/nvme/host/sysfs.c
@@ -120,10 +120,8 @@ static struct attribute *nvme_ns_id_attrs[] = {
&dev_attr_nguid.attr,
&dev_attr_eui.attr,
&dev_attr_nsid.attr,
-#ifdef CONFIG_NVME_MULTIPATH
&dev_attr_ana_grpid.attr,
&dev_attr_ana_state.attr,
-#endif
NULL,
};
@@ -146,14 +144,12 @@ static umode_t nvme_ns_id_attrs_are_visible(struct kobject *kobj,
if (!memchr_inv(ids->eui64, 0, sizeof(ids->eui64)))
return 0;
}
-#ifdef CONFIG_NVME_MULTIPATH
if (a == &dev_attr_ana_grpid.attr || a == &dev_attr_ana_state.attr) {
if (dev_to_disk(dev)->fops != &nvme_bdev_ops) /* per-path attr */
return 0;
if (!nvme_ctrl_use_ana(nvme_get_ns_from_dev(dev)->ctrl))
return 0;
}
-#endif
return a->mode;
}
@@ -652,9 +648,7 @@ static struct attribute *nvme_subsys_attrs[] = {
&subsys_attr_firmware_rev.attr,
&subsys_attr_subsysnqn.attr,
&subsys_attr_subsystype.attr,
-#ifdef CONFIG_NVME_MULTIPATH
&subsys_attr_iopolicy.attr,
-#endif
NULL,
};
--
2.41.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH v1 2/2] nvme: remove warning for shared ns when multipath=N
2023-07-19 8:41 [PATCH v1 0/2] Remove CONFIG_NVME_MULTIPATH option Daniel Wagner
2023-07-19 8:41 ` [PATCH v1 1/2] nvme: drop multipath config option Daniel Wagner
@ 2023-07-19 8:41 ` Daniel Wagner
2023-07-24 16:53 ` Christoph Hellwig
1 sibling, 1 reply; 13+ messages in thread
From: Daniel Wagner @ 2023-07-19 8:41 UTC (permalink / raw)
To: linux-nvme; +Cc: Daniel Wagner
The default value for the module parameter multipath is Y, thus the user
has actively chosen to set multipath to N to trigger this warning with
shared namespaces.
There is at least one external mutlipathing module which conflict with
the native multipathing feature (Dell's PowerPath module). In such setups
the native mutlipathing is deliberate disabled but the warning
that mutlipathing is not supported is confusing users.
The warning was added in ce8d78616a6b ("nvme: warn about shared
namespaces without CONFIG_NVME_MULTIPATH"). In the mean time the config
option has been dropped. Because multipath is now always built-in and
the default is Y, just drop the warning.
Signed-off-by: Daniel Wagner <dwagner@suse.de>
---
drivers/nvme/host/core.c | 5 -----
1 file changed, 5 deletions(-)
diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c
index d08371967ce3..e8faee21c7f5 100644
--- a/drivers/nvme/host/core.c
+++ b/drivers/nvme/host/core.c
@@ -3494,11 +3494,6 @@ static int nvme_init_ns_head(struct nvme_ns *ns, struct nvme_ns_info *info)
info->nsid);
goto out_put_ns_head;
}
-
- if (!multipath)
- dev_warn(ctrl->device,
- "Found shared namespace %d, but multipathing not supported.\n",
- info->nsid);
}
list_add_tail_rcu(&ns->siblings, &head->list);
--
2.41.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH v1 1/2] nvme: drop multipath config option
2023-07-19 8:41 ` [PATCH v1 1/2] nvme: drop multipath config option Daniel Wagner
@ 2023-07-19 10:04 ` Keith Busch
2023-07-19 11:13 ` Daniel Wagner
2023-07-24 16:51 ` Christoph Hellwig
0 siblings, 2 replies; 13+ messages in thread
From: Keith Busch @ 2023-07-19 10:04 UTC (permalink / raw)
To: Daniel Wagner; +Cc: linux-nvme
On Wed, Jul 19, 2023 at 10:41:46AM +0200, Daniel Wagner wrote:
> @@ -3497,13 +3495,10 @@ static int nvme_init_ns_head(struct nvme_ns *ns, struct nvme_ns_info *info)
> goto out_put_ns_head;
> }
>
> - if (!multipath) {
> + if (!multipath)
> dev_warn(ctrl->device,
> "Found shared namespace %d, but multipathing not supported.\n",
> info->nsid);
> - dev_warn_once(ctrl->device,
> - "Support for shared namespaces without CONFIG_NVME_MULTIPATH is deprecated and will be removed in Linux 6.0\n.");
> - }
From my reading of this message, I thought the intention was that this
driver will eventually replace it with a:
goto out_put_ns_head;
instead of letting the namespace become visible for some unsupported
mode. The warning was to give people a chance to migrate off whatever
unsupported setup they were using, not a deadline for when the warning
dissappears.
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v1 1/2] nvme: drop multipath config option
2023-07-19 10:04 ` Keith Busch
@ 2023-07-19 11:13 ` Daniel Wagner
2023-07-19 11:38 ` Keith Busch
2023-07-24 16:51 ` Christoph Hellwig
2023-07-24 16:51 ` Christoph Hellwig
1 sibling, 2 replies; 13+ messages in thread
From: Daniel Wagner @ 2023-07-19 11:13 UTC (permalink / raw)
To: Keith Busch; +Cc: linux-nvme
On Wed, Jul 19, 2023 at 12:04:50PM +0200, Keith Busch wrote:
> From my reading of this message, I thought the intention was that this
> driver will eventually replace it with a:
>
> goto out_put_ns_head;
This would obviously make the PowerPath module unhappy. Sure, I am aware of our
upstream policy so I wont argue.
> instead of letting the namespace become visible for some unsupported
> mode. The warning was to give people a chance to migrate off whatever
> unsupported setup they were using, not a deadline for when the warning
> dissappears.
I assume this means the dm-multipath setups? If so, I understand the motivation
but do we really have to burn the bridge here? It's not that we have additional
code or maintaince overhead, except the module parameter multipath.
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v1 1/2] nvme: drop multipath config option
2023-07-19 11:13 ` Daniel Wagner
@ 2023-07-19 11:38 ` Keith Busch
2023-07-19 12:12 ` Daniel Wagner
2023-07-24 16:51 ` Christoph Hellwig
1 sibling, 1 reply; 13+ messages in thread
From: Keith Busch @ 2023-07-19 11:38 UTC (permalink / raw)
To: Daniel Wagner; +Cc: linux-nvme
On Wed, Jul 19, 2023 at 01:13:18PM +0200, Daniel Wagner wrote:
> On Wed, Jul 19, 2023 at 12:04:50PM +0200, Keith Busch wrote:
> > From my reading of this message, I thought the intention was that this
> > driver will eventually replace it with a:
> >
> > goto out_put_ns_head;
>
> This would obviously make the PowerPath module unhappy. Sure, I am aware of our
> upstream policy so I wont argue.
>
> > instead of letting the namespace become visible for some unsupported
> > mode. The warning was to give people a chance to migrate off whatever
> > unsupported setup they were using, not a deadline for when the warning
> > dissappears.
>
> I assume this means the dm-multipath setups? If so, I understand the motivation
> but do we really have to burn the bridge here? It's not that we have additional
> code or maintaince overhead, except the module parameter multipath.
Yeah, dm-mpath is such a setup this was intended to prevent, as well as
out-of-tree alternatives. Not that I advocating one way or another at
this point; I'm just trying to set the context for why this message
exists for discussing your patchset.
I'm curious why a proprietary module is even used, though. Is the
driver's native handling doing something undesirable, or is this to
cater to some vendor specific behavior outside the spec? If the former,
I'd like to understand the problem and see if there's something we can
improve.
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v1 1/2] nvme: drop multipath config option
2023-07-19 11:38 ` Keith Busch
@ 2023-07-19 12:12 ` Daniel Wagner
2023-07-19 13:19 ` Hannes Reinecke
0 siblings, 1 reply; 13+ messages in thread
From: Daniel Wagner @ 2023-07-19 12:12 UTC (permalink / raw)
To: Keith Busch; +Cc: linux-nvme
On Wed, Jul 19, 2023 at 01:38:55PM +0200, Keith Busch wrote:
> Yeah, dm-mpath is such a setup this was intended to prevent, as well as
> out-of-tree alternatives. Not that I advocating one way or another at
> this point; I'm just trying to set the context for why this message
> exists for discussing your patchset.
Fair enough.
> I'm curious why a proprietary module is even used, though. Is the
> driver's native handling doing something undesirable, or is this to
> cater to some vendor specific behavior outside the spec? If the former,
> I'd like to understand the problem and see if there's something we can
> improve.
Unfortunatly, I don't have any insides into PowerPath, or what it tries to
achieve. I suspect it's more vendor specific handling features. I'll ask if
there is a feature gap we could address in upstream.
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v1 1/2] nvme: drop multipath config option
2023-07-19 12:12 ` Daniel Wagner
@ 2023-07-19 13:19 ` Hannes Reinecke
0 siblings, 0 replies; 13+ messages in thread
From: Hannes Reinecke @ 2023-07-19 13:19 UTC (permalink / raw)
To: Daniel Wagner, Keith Busch; +Cc: linux-nvme
On 7/19/23 14:12, Daniel Wagner wrote:
> On Wed, Jul 19, 2023 at 01:38:55PM +0200, Keith Busch wrote:
>> Yeah, dm-mpath is such a setup this was intended to prevent, as well as
>> out-of-tree alternatives. Not that I advocating one way or another at
>> this point; I'm just trying to set the context for why this message
>> exists for discussing your patchset.
>
> Fair enough.
>
>> I'm curious why a proprietary module is even used, though. Is the
>> driver's native handling doing something undesirable, or is this to
>> cater to some vendor specific behavior outside the spec? If the former,
>> I'd like to understand the problem and see if there's something we can
>> improve.
>
> Unfortunatly, I don't have any insides into PowerPath, or what it tries to
> achieve. I suspect it's more vendor specific handling features. I'll ask if
> there is a feature gap we could address in upstream.
>
From my perspective there is no feature gap. With dm-multipath there
used to be one, as powerpath would provide /dev/sd* devices, not the
/dev/dm-* devices from dm-multipath.
Also powerpath was/is able to detect which array is being used, and
pull all sorts of information from it.
Not that we really need that, though.
Other than that the functionality is pretty much identical.
PowerPath is primarily there as Dell/EMC used to recommend using
PowerPath, and customer are wont to do whatever the IHV tells them.
So really, the issue not about PowerPath.
The issue is about dm-multipath, which requires this option to work at
all. And that is a really contentious issue which I will not engage upon.
Good luck.
Cheers,
Hannes
--
Dr. Hannes Reinecke Kernel Storage Architect
hare@suse.de +49 911 74053 688
SUSE Software Solutions Germany GmbH, Frankenstr. 146, 90461 Nürnberg
Managing Directors: I. Totev, A. Myers, A. McDonald, M. B. Moerman
(HRB 36809, AG Nürnberg)
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v1 1/2] nvme: drop multipath config option
2023-07-19 10:04 ` Keith Busch
2023-07-19 11:13 ` Daniel Wagner
@ 2023-07-24 16:51 ` Christoph Hellwig
2023-07-25 6:05 ` Daniel Wagner
1 sibling, 1 reply; 13+ messages in thread
From: Christoph Hellwig @ 2023-07-24 16:51 UTC (permalink / raw)
To: Keith Busch; +Cc: Daniel Wagner, linux-nvme
On Wed, Jul 19, 2023 at 12:04:50PM +0200, Keith Busch wrote:
> >From my reading of this message, I thought the intention was that this
> driver will eventually replace it with a:
>
> goto out_put_ns_head;
>
> instead of letting the namespace become visible for some unsupported
> mode. The warning was to give people a chance to migrate off whatever
> unsupported setup they were using, not a deadline for when the warning
> dissappears.
Exactly!
Btw, Daniel - any reason you didn't Cc me on this?
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v1 1/2] nvme: drop multipath config option
2023-07-19 11:13 ` Daniel Wagner
2023-07-19 11:38 ` Keith Busch
@ 2023-07-24 16:51 ` Christoph Hellwig
1 sibling, 0 replies; 13+ messages in thread
From: Christoph Hellwig @ 2023-07-24 16:51 UTC (permalink / raw)
To: Daniel Wagner; +Cc: Keith Busch, linux-nvme
On Wed, Jul 19, 2023 at 01:13:18PM +0200, Daniel Wagner wrote:
> On Wed, Jul 19, 2023 at 12:04:50PM +0200, Keith Busch wrote:
> > From my reading of this message, I thought the intention was that this
> > driver will eventually replace it with a:
> >
> > goto out_put_ns_head;
>
> This would obviously make the PowerPath module unhappy. Sure, I am aware of our
> upstream policy so I wont argue.
So what? non-upstream stuff simply does not matter.
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v1 2/2] nvme: remove warning for shared ns when multipath=N
2023-07-19 8:41 ` [PATCH v1 2/2] nvme: remove warning for shared ns when multipath=N Daniel Wagner
@ 2023-07-24 16:53 ` Christoph Hellwig
0 siblings, 0 replies; 13+ messages in thread
From: Christoph Hellwig @ 2023-07-24 16:53 UTC (permalink / raw)
To: Daniel Wagner; +Cc: linux-nvme
On Wed, Jul 19, 2023 at 10:41:47AM +0200, Daniel Wagner wrote:
> The default value for the module parameter multipath is Y, thus the user
> has actively chosen to set multipath to N to trigger this warning with
> shared namespaces.
>
> There is at least one external mutlipathing module which conflict with
> the native multipathing feature (Dell's PowerPath module). In such setups
Why the fuck would we care? Out of tree modules don't matter, and
certainly no one should ever even dare to bother upstream with them.
Stop this crap.
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v1 1/2] nvme: drop multipath config option
2023-07-24 16:51 ` Christoph Hellwig
@ 2023-07-25 6:05 ` Daniel Wagner
2023-07-26 13:11 ` Christoph Hellwig
0 siblings, 1 reply; 13+ messages in thread
From: Daniel Wagner @ 2023-07-25 6:05 UTC (permalink / raw)
To: Christoph Hellwig; +Cc: Keith Busch, linux-nvme
On Mon, Jul 24, 2023 at 09:51:32AM -0700, Christoph Hellwig wrote:
> Btw, Daniel - any reason you didn't Cc me on this?
I thought you preferred not to be Cc. I am just trying to be nice :)
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v1 1/2] nvme: drop multipath config option
2023-07-25 6:05 ` Daniel Wagner
@ 2023-07-26 13:11 ` Christoph Hellwig
0 siblings, 0 replies; 13+ messages in thread
From: Christoph Hellwig @ 2023-07-26 13:11 UTC (permalink / raw)
To: Daniel Wagner; +Cc: Christoph Hellwig, Keith Busch, linux-nvme
On Tue, Jul 25, 2023 at 08:05:25AM +0200, Daniel Wagner wrote:
> On Mon, Jul 24, 2023 at 09:51:32AM -0700, Christoph Hellwig wrote:
> > Btw, Daniel - any reason you didn't Cc me on this?
>
> I thought you preferred not to be Cc. I am just trying to be nice :)
Heh. I usually try to avoid being Cced by the crazy get_maintainer
heuristics, because that means I get Cced on everything. For
things I maintain the Cc really helps getting my attention when
I'm overscheduled like now and might be way behind on the lists.
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2023-07-26 13:11 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-07-19 8:41 [PATCH v1 0/2] Remove CONFIG_NVME_MULTIPATH option Daniel Wagner
2023-07-19 8:41 ` [PATCH v1 1/2] nvme: drop multipath config option Daniel Wagner
2023-07-19 10:04 ` Keith Busch
2023-07-19 11:13 ` Daniel Wagner
2023-07-19 11:38 ` Keith Busch
2023-07-19 12:12 ` Daniel Wagner
2023-07-19 13:19 ` Hannes Reinecke
2023-07-24 16:51 ` Christoph Hellwig
2023-07-24 16:51 ` Christoph Hellwig
2023-07-25 6:05 ` Daniel Wagner
2023-07-26 13:11 ` Christoph Hellwig
2023-07-19 8:41 ` [PATCH v1 2/2] nvme: remove warning for shared ns when multipath=N Daniel Wagner
2023-07-24 16:53 ` Christoph Hellwig
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).