Send a pr_notice when ever the iopolicy on a subsystem
is changed. This is important for support reasons. It
is fully expected that users will be changing the iopolicy
with active IO in progress.
Signed-off-by: John Meneghini <[email protected]>
---
drivers/nvme/host/multipath.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/drivers/nvme/host/multipath.c b/drivers/nvme/host/multipath.c
index e9330bb1990b..0286e44a081f 100644
--- a/drivers/nvme/host/multipath.c
+++ b/drivers/nvme/host/multipath.c
@@ -67,6 +67,10 @@ static int nvme_activate_iopolicy(struct nvme_subsystem *subsys, int iopolicy)
}
}
mutex_unlock(&subsys->lock);
+
+ pr_notice("%s: %s enable %d status %d for subsysnqn %s\n", __func__,
+ nvme_iopolicy_names[iopolicy], enable, ret, subsys->subnqn);
+
return ret;
}
@@ -890,6 +894,8 @@ void nvme_subsys_iopolicy_update(struct nvme_subsystem *subsys, int iopolicy)
{
struct nvme_ctrl *ctrl;
+ int old_iopolicy = READ_ONCE(subsys->iopolicy);
+
WRITE_ONCE(subsys->iopolicy, iopolicy);
mutex_lock(&nvme_subsystems_lock);
@@ -898,6 +904,10 @@ void nvme_subsys_iopolicy_update(struct nvme_subsystem *subsys, int iopolicy)
nvme_mpath_clear_ctrl_paths(ctrl);
}
mutex_unlock(&nvme_subsystems_lock);
+
+ pr_notice("%s: changed from %s to %s for subsysnqn %s\n", __func__,
+ nvme_iopolicy_names[old_iopolicy], nvme_iopolicy_names[iopolicy],
+ subsys->subnqn);
}
static ssize_t nvme_subsys_iopolicy_store(struct device *dev,
--
2.39.3
On 5/10/24 05:43, John Meneghini wrote:
> Send a pr_notice when ever the iopolicy on a subsystem
> is changed. This is important for support reasons. It
> is fully expected that users will be changing the iopolicy
> with active IO in progress.
>
> Signed-off-by: John Meneghini <[email protected]>
> ---
> drivers/nvme/host/multipath.c | 10 ++++++++++
> 1 file changed, 10 insertions(+)
>
> diff --git a/drivers/nvme/host/multipath.c b/drivers/nvme/host/multipath.c
> index e9330bb1990b..0286e44a081f 100644
> --- a/drivers/nvme/host/multipath.c
> +++ b/drivers/nvme/host/multipath.c
> @@ -67,6 +67,10 @@ static int nvme_activate_iopolicy(struct nvme_subsystem *subsys, int iopolicy)
> }
> }
> mutex_unlock(&subsys->lock);
> +
> + pr_notice("%s: %s enable %d status %d for subsysnqn %s\n", __func__,
> + nvme_iopolicy_names[iopolicy], enable, ret, subsys->subnqn);
> +
> return ret;
> }
>
> @@ -890,6 +894,8 @@ void nvme_subsys_iopolicy_update(struct nvme_subsystem *subsys, int iopolicy)
> {
> struct nvme_ctrl *ctrl;
>
> + int old_iopolicy = READ_ONCE(subsys->iopolicy);
No need for the white line before this.
> +
> WRITE_ONCE(subsys->iopolicy, iopolicy);
>
> mutex_lock(&nvme_subsystems_lock);
> @@ -898,6 +904,10 @@ void nvme_subsys_iopolicy_update(struct nvme_subsystem *subsys, int iopolicy)
> nvme_mpath_clear_ctrl_paths(ctrl);
> }
> mutex_unlock(&nvme_subsystems_lock);
> +
> + pr_notice("%s: changed from %s to %s for subsysnqn %s\n", __func__,
> + nvme_iopolicy_names[old_iopolicy], nvme_iopolicy_names[iopolicy],
> + subsys->subnqn);
Using dev_notice(&subsys->dev, "...", ...); may be better. Same for the other
messages.
> }
>
> static ssize_t nvme_subsys_iopolicy_store(struct device *dev,
--
Damien Le Moal
Western Digital Research