From: John Garry <john.garry@linux.dev>
To: loberman@redhat.com, linux-nvme@lists.infradead.org
Cc: hch@lst.de, kbusch@kernel.org, sagi@grimberg.me
Subject: Re: [PATCH v2] nvme-multipath: add iopolicies sysfs attribute
Date: Tue, 22 Sep 2026 15:24:06 +0100 [thread overview]
Message-ID: <1adea898-454f-4029-b8ea-d6f557f59087@linux.dev> (raw)
In-Reply-To: <20260921144347.49620-1-loberman@redhat.com>
On 9/21/26 15:43, loberman@redhat.com wrote:
> From: Laurence Oberman <loberman@redhat.com>
>
> The subsystem iopolicy attribute only shows the active policy, so
> there is no way to see which policies are available.
>
> Changing the output of iopolicy would break existing userspace,
> since nvme-cli compares the value against a bare policy name. Leave
> iopolicy unchanged and add a read-only iopolicies attribute that
> lists the available policies:
>
> # cat iopolicies
> numa round-robin queue-depth
>
> The current policy is still read from iopolicy.
>
> Signed-off-by: Laurence Oberman <loberman@redhat.com>
Apart from comment below:
Reviewed-by: John Garry <john.garry@linux.dev>
> Assisted-by: Claude:claude-sonnet-5
> ---
> v2:
> - Drop the [ ] notation and list plain policy names (Christoph)
>
> drivers/nvme/host/multipath.c | 15 +++++++++++++++
> drivers/nvme/host/nvme.h | 1 +
> drivers/nvme/host/sysfs.c | 1 +
> 3 files changed, 17 insertions(+)
>
> diff --git a/drivers/nvme/host/multipath.c b/drivers/nvme/host/multipath.c
> index 75dbb58286a3..ea7d0c59587b 100644
> --- a/drivers/nvme/host/multipath.c
> +++ b/drivers/nvme/host/multipath.c
> @@ -1085,6 +1085,21 @@ static ssize_t nvme_subsys_iopolicy_store(struct device *dev,
> SUBSYS_ATTR_RW(iopolicy, S_IRUGO | S_IWUSR,
> nvme_subsys_iopolicy_show, nvme_subsys_iopolicy_store);
>
> +static ssize_t iopolicies_show(struct device *dev,
> + struct device_attribute *attr, char *buf)
> +{
> + int i, len = 0;
> +
> + for (i = 0; i < ARRAY_SIZE(nvme_iopolicy_names); i++)
> + len += sysfs_emit_at(buf, len, "%s%s", i ? " " : "",> +
nvme_iopolicy_names[i]);
> +
> + len += sysfs_emit_at(buf, len, "\n");
> + return len;
> +}
> +
> +struct device_attribute subsys_attr_iopolicies = __ATTR_RO(iopolicies);
SUBSYS_ATTR_RO already exists for this, right?
> +
> static ssize_t ana_grpid_show(struct device *dev, struct device_attribute *attr,
> char *buf)
> {
> diff --git a/drivers/nvme/host/nvme.h b/drivers/nvme/host/nvme.h
> index 75e5d5a8a77c..b419c6fc6081 100644
> --- a/drivers/nvme/host/nvme.h
> +++ b/drivers/nvme/host/nvme.h
> @@ -1098,6 +1098,7 @@ extern struct device_attribute dev_attr_multipath_failover_count;
> extern struct device_attribute dev_attr_io_requeue_no_usable_path_count;
> extern struct device_attribute dev_attr_io_fail_no_available_path_count;
> extern struct device_attribute subsys_attr_iopolicy;
> +extern struct device_attribute subsys_attr_iopolicies;
>
> static inline bool nvme_disk_is_ns_head(struct gendisk *disk)
> {
> diff --git a/drivers/nvme/host/sysfs.c b/drivers/nvme/host/sysfs.c
> index abf8edaae371..4c4518b6b7d5 100644
> --- a/drivers/nvme/host/sysfs.c
> +++ b/drivers/nvme/host/sysfs.c
> @@ -1298,6 +1298,7 @@ static struct attribute *nvme_subsys_attrs[] = {
> &subsys_attr_subsystype.attr,
> #ifdef CONFIG_NVME_MULTIPATH
> &subsys_attr_iopolicy.attr,
> + &subsys_attr_iopolicies.attr,
> #endif
> NULL,
> };
next prev parent reply other threads:[~2026-09-22 14:24 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-21 14:43 [PATCH v2] nvme-multipath: add iopolicies sysfs attribute loberman
2026-09-22 13:38 ` Christoph Hellwig
2026-09-22 14:24 ` John Garry [this message]
2026-09-22 15:04 ` Keith Busch
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=1adea898-454f-4029-b8ea-d6f557f59087@linux.dev \
--to=john.garry@linux.dev \
--cc=hch@lst.de \
--cc=kbusch@kernel.org \
--cc=linux-nvme@lists.infradead.org \
--cc=loberman@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