Linux-NVME Archive on lore.kernel.org
 help / color / mirror / Atom feed
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,
>   };



  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