From: Dan Williams <dan.j.williams@intel.com> To: linux-nvdimm@lists.01.org Cc: peterz@infradead.org, dave.hansen@linux.intel.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: [PATCH 12/16] dax: Add numa_node to the default device-dax attributes Date: Wed, 06 Nov 2019 19:57:41 -0800 [thread overview] Message-ID: <157309906102.1582359.4262088001244476001.stgit@dwillia2-desk3.amr.corp.intel.com> (raw) In-Reply-To: <157309899529.1582359.15358067933360719580.stgit@dwillia2-desk3.amr.corp.intel.com> It is confusing that device-dax instances publish a 'target_node' attribute, but not a 'numa_node'. The 'numa_node' information is available elsewhere in the sysfs device hierarchy, but it is not obvious and not reliable from one device-dax instance-type (e.g. child devices of nvdimm namespaces) to the next (e.g. 'hmem' devices defined by EFI Specific Purpose Memory and the ACPI HMAT). Cc: Ira Weiny <ira.weiny@intel.com> Cc: Vishal Verma <vishal.l.verma@intel.com> Signed-off-by: Dan Williams <dan.j.williams@intel.com> --- drivers/dax/bus.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/drivers/dax/bus.c b/drivers/dax/bus.c index ce6d648d7670..0879b9663eb7 100644 --- a/drivers/dax/bus.c +++ b/drivers/dax/bus.c @@ -322,6 +322,13 @@ static ssize_t modalias_show(struct device *dev, struct device_attribute *attr, } static DEVICE_ATTR_RO(modalias); +static ssize_t numa_node_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + return sprintf(buf, "%d\n", dev_to_node(dev)); +} +static DEVICE_ATTR_RO(numa_node); + static umode_t dev_dax_visible(struct kobject *kobj, struct attribute *a, int n) { struct device *dev = container_of(kobj, struct device, kobj); @@ -329,6 +336,8 @@ static umode_t dev_dax_visible(struct kobject *kobj, struct attribute *a, int n) if (a == &dev_attr_target_node.attr && dev_dax_target_node(dev_dax) < 0) return 0; + if (a == &dev_attr_numa_node.attr && !IS_ENABLED(CONFIG_NUMA)) + return 0; return a->mode; } @@ -337,6 +346,7 @@ static struct attribute *dev_dax_attributes[] = { &dev_attr_size.attr, &dev_attr_target_node.attr, &dev_attr_resource.attr, + &dev_attr_numa_node.attr, NULL, }; _______________________________________________ Linux-nvdimm mailing list -- linux-nvdimm@lists.01.org To unsubscribe send an email to linux-nvdimm-leave@lists.01.org
WARNING: multiple messages have this Message-ID (diff)
From: Dan Williams <dan.j.williams@intel.com> To: linux-nvdimm@lists.01.org Cc: Ira Weiny <ira.weiny@intel.com>, Vishal Verma <vishal.l.verma@intel.com>, peterz@infradead.org, dave.hansen@linux.intel.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: [PATCH 12/16] dax: Add numa_node to the default device-dax attributes Date: Wed, 06 Nov 2019 19:57:41 -0800 [thread overview] Message-ID: <157309906102.1582359.4262088001244476001.stgit@dwillia2-desk3.amr.corp.intel.com> (raw) In-Reply-To: <157309899529.1582359.15358067933360719580.stgit@dwillia2-desk3.amr.corp.intel.com> It is confusing that device-dax instances publish a 'target_node' attribute, but not a 'numa_node'. The 'numa_node' information is available elsewhere in the sysfs device hierarchy, but it is not obvious and not reliable from one device-dax instance-type (e.g. child devices of nvdimm namespaces) to the next (e.g. 'hmem' devices defined by EFI Specific Purpose Memory and the ACPI HMAT). Cc: Ira Weiny <ira.weiny@intel.com> Cc: Vishal Verma <vishal.l.verma@intel.com> Signed-off-by: Dan Williams <dan.j.williams@intel.com> --- drivers/dax/bus.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/drivers/dax/bus.c b/drivers/dax/bus.c index ce6d648d7670..0879b9663eb7 100644 --- a/drivers/dax/bus.c +++ b/drivers/dax/bus.c @@ -322,6 +322,13 @@ static ssize_t modalias_show(struct device *dev, struct device_attribute *attr, } static DEVICE_ATTR_RO(modalias); +static ssize_t numa_node_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + return sprintf(buf, "%d\n", dev_to_node(dev)); +} +static DEVICE_ATTR_RO(numa_node); + static umode_t dev_dax_visible(struct kobject *kobj, struct attribute *a, int n) { struct device *dev = container_of(kobj, struct device, kobj); @@ -329,6 +336,8 @@ static umode_t dev_dax_visible(struct kobject *kobj, struct attribute *a, int n) if (a == &dev_attr_target_node.attr && dev_dax_target_node(dev_dax) < 0) return 0; + if (a == &dev_attr_numa_node.attr && !IS_ENABLED(CONFIG_NUMA)) + return 0; return a->mode; } @@ -337,6 +346,7 @@ static struct attribute *dev_dax_attributes[] = { &dev_attr_size.attr, &dev_attr_target_node.attr, &dev_attr_resource.attr, + &dev_attr_numa_node.attr, NULL, };
next prev parent reply other threads:[~2019-11-07 4:12 UTC|newest] Thread overview: 79+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-11-07 3:56 [PATCH 00/16] Memory Hierarchy: Enable target node lookups for reserved memory Dan Williams 2019-11-07 3:56 ` Dan Williams 2019-11-07 3:56 ` [PATCH 01/16] libnvdimm: Move attribute groups to device type Dan Williams 2019-11-07 3:56 ` Dan Williams 2019-11-12 11:28 ` Aneesh Kumar K.V 2019-11-12 11:28 ` Aneesh Kumar K.V 2019-11-07 3:56 ` [PATCH 02/16] libnvdimm: Move region attribute group definition Dan Williams 2019-11-07 3:56 ` Dan Williams 2019-11-12 11:29 ` Aneesh Kumar K.V 2019-11-12 11:29 ` Aneesh Kumar K.V 2019-11-07 3:56 ` [PATCH 03/16] libnvdimm: Move nd_device_attribute_group to device_type Dan Williams 2019-11-07 3:56 ` Dan Williams 2019-11-12 11:30 ` Aneesh Kumar K.V 2019-11-12 11:30 ` Aneesh Kumar K.V 2019-11-07 3:56 ` [PATCH 04/16] libnvdimm: Move nd_numa_attribute_group " Dan Williams 2019-11-07 3:56 ` Dan Williams 2019-11-12 9:22 ` Aneesh Kumar K.V 2019-11-12 9:22 ` Aneesh Kumar K.V 2019-11-13 1:26 ` Dan Williams 2019-11-13 1:26 ` Dan Williams 2019-11-13 1:26 ` Dan Williams 2019-11-13 6:02 ` Aneesh Kumar K.V 2019-11-13 6:02 ` Aneesh Kumar K.V 2019-11-13 6:14 ` Dan Williams 2019-11-13 6:14 ` Dan Williams 2019-11-13 6:14 ` Dan Williams 2019-11-07 3:57 ` [PATCH 05/16] libnvdimm: Move nd_region_attribute_group " Dan Williams 2019-11-07 3:57 ` Dan Williams 2019-11-12 11:45 ` Aneesh Kumar K.V 2019-11-12 11:45 ` Aneesh Kumar K.V 2019-11-07 3:57 ` [PATCH 06/16] libnvdimm: Move nd_mapping_attribute_group " Dan Williams 2019-11-07 3:57 ` Dan Williams 2019-11-12 11:45 ` Aneesh Kumar K.V 2019-11-12 11:45 ` Aneesh Kumar K.V 2019-11-07 3:57 ` [PATCH 07/16] libnvdimm: Move nvdimm_attribute_group " Dan Williams 2019-11-07 3:57 ` Dan Williams 2019-11-12 11:48 ` Aneesh Kumar K.V 2019-11-12 11:48 ` Aneesh Kumar K.V 2019-11-07 3:57 ` [PATCH 08/16] libnvdimm: Move nvdimm_bus_attribute_group " Dan Williams 2019-11-07 3:57 ` Dan Williams 2019-11-12 11:48 ` Aneesh Kumar K.V 2019-11-12 11:48 ` Aneesh Kumar K.V 2019-11-07 3:57 ` [PATCH 09/16] dax: Create a dax device_type Dan Williams 2019-11-07 3:57 ` Dan Williams 2019-11-12 11:49 ` Aneesh Kumar K.V 2019-11-12 11:49 ` Aneesh Kumar K.V 2019-11-07 3:57 ` [PATCH 10/16] dax: Simplify root read-only definition for the 'resource' attribute Dan Williams 2019-11-07 3:57 ` Dan Williams 2019-11-12 11:49 ` Aneesh Kumar K.V 2019-11-12 11:49 ` Aneesh Kumar K.V 2019-11-07 3:57 ` [PATCH 11/16] libnvdimm: " Dan Williams 2019-11-07 3:57 ` Dan Williams 2019-11-12 11:50 ` Aneesh Kumar K.V 2019-11-12 11:50 ` Aneesh Kumar K.V 2019-11-07 3:57 ` Dan Williams [this message] 2019-11-07 3:57 ` [PATCH 12/16] dax: Add numa_node to the default device-dax attributes Dan Williams 2019-11-12 11:50 ` Aneesh Kumar K.V 2019-11-12 11:50 ` Aneesh Kumar K.V 2019-11-07 3:57 ` [PATCH 13/16] acpi/mm: Up-level "map to online node" functionality Dan Williams 2019-11-07 3:57 ` Dan Williams 2019-11-11 11:30 ` Aneesh Kumar K.V 2019-11-11 11:30 ` Aneesh Kumar K.V 2019-11-11 23:38 ` Dan Williams 2019-11-11 23:38 ` Dan Williams 2019-11-11 23:38 ` Dan Williams 2019-11-07 3:57 ` [PATCH 14/16] x86/numa: Provide a range-to-target_node lookup facility Dan Williams 2019-11-07 3:57 ` Dan Williams 2019-11-07 3:57 ` [PATCH 15/16] libnvdimm/e820: Drop the wrapper around memory_add_physaddr_to_nid Dan Williams 2019-11-07 3:57 ` Dan Williams 2019-11-07 3:58 ` [PATCH 16/16] libnvdimm/e820: Retrieve and populate correct 'target_node' info Dan Williams 2019-11-07 3:58 ` Dan Williams 2019-11-09 5:02 ` kbuild test robot 2019-11-09 5:02 ` kbuild test robot 2019-11-09 5:02 ` kbuild test robot 2019-11-12 11:42 ` [PATCH 00/16] Memory Hierarchy: Enable target node lookups for reserved memory Aneesh Kumar K.V 2019-11-12 11:42 ` Aneesh Kumar K.V 2019-11-12 19:37 ` Dan Williams 2019-11-12 19:37 ` Dan Williams 2019-11-12 19:37 ` Dan Williams
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=157309906102.1582359.4262088001244476001.stgit@dwillia2-desk3.amr.corp.intel.com \ --to=dan.j.williams@intel.com \ --cc=dave.hansen@linux.intel.com \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mm@kvack.org \ --cc=linux-nvdimm@lists.01.org \ --cc=peterz@infradead.org \ /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: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.