Linux-NVME Archive on lore.kernel.org
 help / color / Atom feed
* [PATCH v2 1/2] nvme: expose hostnqn via sysfs for fabrics controllers
@ 2020-02-08  1:13 Sagi Grimberg
  2020-02-08  1:13 ` [PATCH v2 2/2] nvme: expose hostid " Sagi Grimberg
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Sagi Grimberg @ 2020-02-08  1:13 UTC (permalink / raw)
  To: linux-nvme, Keith Busch, Christoph Hellwig

We allow userspace to connect with a custom hostnqn which
is useful for certain use-cases. however there is is no way
to tell what is the hostnqn used to connect to a given controller.

Expose this so userspace can correlate controllers based on hostnqn.

Signed-off-by: Sagi Grimberg <sagi@grimberg.me>
---
Changes from v1:
- fix changelog
 drivers/nvme/host/core.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c
index 5dc32b72e7fa..29a4f14360fa 100644
--- a/drivers/nvme/host/core.c
+++ b/drivers/nvme/host/core.c
@@ -3242,6 +3242,16 @@ static ssize_t nvme_sysfs_show_subsysnqn(struct device *dev,
 }
 static DEVICE_ATTR(subsysnqn, S_IRUGO, nvme_sysfs_show_subsysnqn, NULL);
 
+static ssize_t nvme_sysfs_show_hostnqn(struct device *dev,
+					struct device_attribute *attr,
+					char *buf)
+{
+	struct nvme_ctrl *ctrl = dev_get_drvdata(dev);
+
+	return snprintf(buf, PAGE_SIZE, "%s\n", ctrl->opts->host->nqn);
+}
+static DEVICE_ATTR(hostnqn, S_IRUGO, nvme_sysfs_show_hostnqn, NULL);
+
 static ssize_t nvme_sysfs_show_address(struct device *dev,
 					 struct device_attribute *attr,
 					 char *buf)
@@ -3267,6 +3277,7 @@ static struct attribute *nvme_dev_attrs[] = {
 	&dev_attr_numa_node.attr,
 	&dev_attr_queue_count.attr,
 	&dev_attr_sqsize.attr,
+	&dev_attr_hostnqn.attr,
 	NULL
 };
 
@@ -3280,6 +3291,8 @@ static umode_t nvme_dev_attrs_are_visible(struct kobject *kobj,
 		return 0;
 	if (a == &dev_attr_address.attr && !ctrl->ops->get_address)
 		return 0;
+	if (a == &dev_attr_hostnqn.attr && (!ctrl->opts))
+		return 0;
 
 	return a->mode;
 }
-- 
2.20.1


_______________________________________________
linux-nvme mailing list
linux-nvme@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-nvme

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH v2 2/2] nvme: expose hostid via sysfs for fabrics controllers
  2020-02-08  1:13 [PATCH v2 1/2] nvme: expose hostnqn via sysfs for fabrics controllers Sagi Grimberg
@ 2020-02-08  1:13 ` " Sagi Grimberg
  2020-02-09 23:56   ` Chaitanya Kulkarni
  2020-02-19 15:10   ` Christoph Hellwig
  2020-02-09 23:55 ` [PATCH v2 1/2] nvme: expose hostnqn " Chaitanya Kulkarni
  2020-02-19 15:09 ` Christoph Hellwig
  2 siblings, 2 replies; 6+ messages in thread
From: Sagi Grimberg @ 2020-02-08  1:13 UTC (permalink / raw)
  To: linux-nvme, Keith Busch, Christoph Hellwig

We allow userspace to connect with a custom hostid which
is useful for certain use-cases. however there is is no way
to tell what is the hostid used to connect to a given controller.

Expose this so userspace can correlate controllers based on hostid.

Signed-off-by: Sagi Grimberg <sagi@grimberg.me>
---
Changes from v1:
- fix changelog
 drivers/nvme/host/core.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c
index 29a4f14360fa..c2aba7d700ff 100644
--- a/drivers/nvme/host/core.c
+++ b/drivers/nvme/host/core.c
@@ -3252,6 +3252,16 @@ static ssize_t nvme_sysfs_show_hostnqn(struct device *dev,
 }
 static DEVICE_ATTR(hostnqn, S_IRUGO, nvme_sysfs_show_hostnqn, NULL);
 
+static ssize_t nvme_sysfs_show_hostid(struct device *dev,
+					struct device_attribute *attr,
+					char *buf)
+{
+	struct nvme_ctrl *ctrl = dev_get_drvdata(dev);
+
+	return snprintf(buf, PAGE_SIZE, "%pU\n", &ctrl->opts->host->id);
+}
+static DEVICE_ATTR(hostid, S_IRUGO, nvme_sysfs_show_hostid, NULL);
+
 static ssize_t nvme_sysfs_show_address(struct device *dev,
 					 struct device_attribute *attr,
 					 char *buf)
@@ -3278,6 +3288,7 @@ static struct attribute *nvme_dev_attrs[] = {
 	&dev_attr_queue_count.attr,
 	&dev_attr_sqsize.attr,
 	&dev_attr_hostnqn.attr,
+	&dev_attr_hostid.attr,
 	NULL
 };
 
@@ -3293,6 +3304,8 @@ static umode_t nvme_dev_attrs_are_visible(struct kobject *kobj,
 		return 0;
 	if (a == &dev_attr_hostnqn.attr && (!ctrl->opts))
 		return 0;
+	if (a == &dev_attr_hostid.attr && (!ctrl->opts))
+		return 0;
 
 	return a->mode;
 }
-- 
2.20.1


_______________________________________________
linux-nvme mailing list
linux-nvme@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-nvme

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v2 1/2] nvme: expose hostnqn via sysfs for fabrics controllers
  2020-02-08  1:13 [PATCH v2 1/2] nvme: expose hostnqn via sysfs for fabrics controllers Sagi Grimberg
  2020-02-08  1:13 ` [PATCH v2 2/2] nvme: expose hostid " Sagi Grimberg
@ 2020-02-09 23:55 ` " Chaitanya Kulkarni
  2020-02-19 15:09 ` Christoph Hellwig
  2 siblings, 0 replies; 6+ messages in thread
From: Chaitanya Kulkarni @ 2020-02-09 23:55 UTC (permalink / raw)
  To: Sagi Grimberg, linux-nvme, Keith Busch, Christoph Hellwig

On 02/07/2020 05:14 PM, Sagi Grimberg wrote:
> We allow userspace to connect with a custom hostnqn which
> is useful for certain use-cases. however there is is no way
nit :- can be done when applying patch.
's/however/However/'
> to tell what is the hostnqn used to connect to a given controller.
>
> Expose this so userspace can correlate controllers based on hostnqn.
>
> Signed-off-by: Sagi Grimberg<sagi@grimberg.me>

With small comment.

Reviewed-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>

_______________________________________________
linux-nvme mailing list
linux-nvme@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-nvme

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v2 2/2] nvme: expose hostid via sysfs for fabrics controllers
  2020-02-08  1:13 ` [PATCH v2 2/2] nvme: expose hostid " Sagi Grimberg
@ 2020-02-09 23:56   ` Chaitanya Kulkarni
  2020-02-19 15:10   ` Christoph Hellwig
  1 sibling, 0 replies; 6+ messages in thread
From: Chaitanya Kulkarni @ 2020-02-09 23:56 UTC (permalink / raw)
  To: Sagi Grimberg, linux-nvme, Keith Busch, Christoph Hellwig

On 02/07/2020 05:14 PM, Sagi Grimberg wrote:
> We allow userspace to connect with a custom hostid which
> is useful for certain use-cases. however there is is no way
Same here :- 's/however/However'. 's/is is/is/'.
> to tell what is the hostid used to connect to a given controller.
>
> Expose this so userspace can correlate controllers based on hostid.
>
> Signed-off-by: Sagi Grimberg<sagi@grimberg.me>
Reviewed-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>

_______________________________________________
linux-nvme mailing list
linux-nvme@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-nvme

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v2 1/2] nvme: expose hostnqn via sysfs for fabrics controllers
  2020-02-08  1:13 [PATCH v2 1/2] nvme: expose hostnqn via sysfs for fabrics controllers Sagi Grimberg
  2020-02-08  1:13 ` [PATCH v2 2/2] nvme: expose hostid " Sagi Grimberg
  2020-02-09 23:55 ` [PATCH v2 1/2] nvme: expose hostnqn " Chaitanya Kulkarni
@ 2020-02-19 15:09 ` Christoph Hellwig
  2 siblings, 0 replies; 6+ messages in thread
From: Christoph Hellwig @ 2020-02-19 15:09 UTC (permalink / raw)
  To: Sagi Grimberg; +Cc: Keith Busch, Christoph Hellwig, linux-nvme

On Fri, Feb 07, 2020 at 05:13:53PM -0800, Sagi Grimberg wrote:
> We allow userspace to connect with a custom hostnqn which
> is useful for certain use-cases. however there is is no way
> to tell what is the hostnqn used to connect to a given controller.
> 
> Expose this so userspace can correlate controllers based on hostnqn.
> 
> Signed-off-by: Sagi Grimberg <sagi@grimberg.me>
> ---
> Changes from v1:
> - fix changelog
>  drivers/nvme/host/core.c | 13 +++++++++++++
>  1 file changed, 13 insertions(+)
> 
> diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c
> index 5dc32b72e7fa..29a4f14360fa 100644
> --- a/drivers/nvme/host/core.c
> +++ b/drivers/nvme/host/core.c
> @@ -3242,6 +3242,16 @@ static ssize_t nvme_sysfs_show_subsysnqn(struct device *dev,
>  }
>  static DEVICE_ATTR(subsysnqn, S_IRUGO, nvme_sysfs_show_subsysnqn, NULL);
>  
> +static ssize_t nvme_sysfs_show_hostnqn(struct device *dev,
> +					struct device_attribute *attr,
> +					char *buf)
> +{
> +	struct nvme_ctrl *ctrl = dev_get_drvdata(dev);
> +
> +	return snprintf(buf, PAGE_SIZE, "%s\n", ctrl->opts->host->nqn);
> +}
> +static DEVICE_ATTR(hostnqn, S_IRUGO, nvme_sysfs_show_hostnqn, NULL);
> +
>  static ssize_t nvme_sysfs_show_address(struct device *dev,
>  					 struct device_attribute *attr,
>  					 char *buf)
> @@ -3267,6 +3277,7 @@ static struct attribute *nvme_dev_attrs[] = {
>  	&dev_attr_numa_node.attr,
>  	&dev_attr_queue_count.attr,
>  	&dev_attr_sqsize.attr,
> +	&dev_attr_hostnqn.attr,
>  	NULL
>  };
>  
> @@ -3280,6 +3291,8 @@ static umode_t nvme_dev_attrs_are_visible(struct kobject *kobj,
>  		return 0;
>  	if (a == &dev_attr_address.attr && !ctrl->ops->get_address)
>  		return 0;
> +	if (a == &dev_attr_hostnqn.attr && (!ctrl->opts))

No nee for the inner braces here.

Otherwise looks good:

Reviewed-by: Christoph Hellwig <hch@lst.de>

_______________________________________________
linux-nvme mailing list
linux-nvme@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-nvme

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v2 2/2] nvme: expose hostid via sysfs for fabrics controllers
  2020-02-08  1:13 ` [PATCH v2 2/2] nvme: expose hostid " Sagi Grimberg
  2020-02-09 23:56   ` Chaitanya Kulkarni
@ 2020-02-19 15:10   ` Christoph Hellwig
  1 sibling, 0 replies; 6+ messages in thread
From: Christoph Hellwig @ 2020-02-19 15:10 UTC (permalink / raw)
  To: Sagi Grimberg; +Cc: Keith Busch, Christoph Hellwig, linux-nvme

On Fri, Feb 07, 2020 at 05:13:54PM -0800, Sagi Grimberg wrote:
> @@ -3293,6 +3304,8 @@ static umode_t nvme_dev_attrs_are_visible(struct kobject *kobj,
>  		return 0;
>  	if (a == &dev_attr_hostnqn.attr && (!ctrl->opts))
>  		return 0;
> +	if (a == &dev_attr_hostid.attr && (!ctrl->opts))
> +		return 0;

No need for the braces either.

Otherwise:

Reviewed-by: Christoph Hellwig <hch@lst.de>

_______________________________________________
linux-nvme mailing list
linux-nvme@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-nvme

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, back to index

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-02-08  1:13 [PATCH v2 1/2] nvme: expose hostnqn via sysfs for fabrics controllers Sagi Grimberg
2020-02-08  1:13 ` [PATCH v2 2/2] nvme: expose hostid " Sagi Grimberg
2020-02-09 23:56   ` Chaitanya Kulkarni
2020-02-19 15:10   ` Christoph Hellwig
2020-02-09 23:55 ` [PATCH v2 1/2] nvme: expose hostnqn " Chaitanya Kulkarni
2020-02-19 15:09 ` Christoph Hellwig

Linux-NVME Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/linux-nvme/0 linux-nvme/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linux-nvme linux-nvme/ https://lore.kernel.org/linux-nvme \
		linux-nvme@lists.infradead.org
	public-inbox-index linux-nvme

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.infradead.lists.linux-nvme


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git