From: Dan Williams <dan.j.williams@intel.com> To: linux-nvdimm@lists.01.org Cc: axboe@kernel.dk, boaz@plexistor.com, toshi.kani@hp.com, linux-kernel@vger.kernel.org, hch@lst.de, linux-acpi@vger.kernel.org, linux-fsdevel@vger.kernel.org, mingo@kernel.org Subject: [PATCH v2 15/17] libnvdimm: Set numa_node to NVDIMM devices Date: Thu, 25 Jun 2015 05:37:38 -0400 [thread overview] Message-ID: <20150625093738.40066.88750.stgit@dwillia2-desk3.jf.intel.com> (raw) In-Reply-To: <20150625090554.40066.69562.stgit@dwillia2-desk3.jf.intel.com> From: Toshi Kani <toshi.kani@hp.com> ACPI NFIT table has System Physical Address Range Structure entries that describe a proximity ID of each range when ACPI_NFIT_PROXIMITY_VALID is set in the flags. Change acpi_nfit_register_region() to map a proximity ID to its node ID, and set it to a new numa_node field of nd_region_desc, which is then conveyed to the nd_region device. The device core arranges for btt and namespace devices to inherit their node from their parent region. Signed-off-by: Toshi Kani <toshi.kani@hp.com> [djbw: move set_dev_node() from region 'probe' to 'create'] Signed-off-by: Dan Williams <dan.j.williams@intel.com> --- drivers/acpi/nfit.c | 6 ++++++ drivers/nvdimm/region_devs.c | 4 +++- include/linux/libnvdimm.h | 1 + 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/drivers/acpi/nfit.c b/drivers/acpi/nfit.c index 1f6f1b1a54f4..d96c8fe974dd 100644 --- a/drivers/acpi/nfit.c +++ b/drivers/acpi/nfit.c @@ -1392,6 +1392,12 @@ static int acpi_nfit_register_region(struct acpi_nfit_desc *acpi_desc, ndr_desc->res = &res; ndr_desc->provider_data = nfit_spa; ndr_desc->attr_groups = acpi_nfit_region_attribute_groups; + if (spa->flags & ACPI_NFIT_PROXIMITY_VALID) + ndr_desc->numa_node = acpi_map_pxm_to_online_node( + spa->proximity_domain); + else + ndr_desc->numa_node = NUMA_NO_NODE; + list_for_each_entry(nfit_memdev, &acpi_desc->memdevs, list) { struct acpi_nfit_memory_map *memdev = nfit_memdev->memdev; struct nd_mapping *nd_mapping; diff --git a/drivers/nvdimm/region_devs.c b/drivers/nvdimm/region_devs.c index 8f8c7ea485f1..b2ec5045f5a5 100644 --- a/drivers/nvdimm/region_devs.c +++ b/drivers/nvdimm/region_devs.c @@ -738,13 +738,15 @@ static struct nd_region *nd_region_create(struct nvdimm_bus *nvdimm_bus, nd_region->ro = ro; ida_init(&nd_region->ns_ida); dev = &nd_region->dev; + device_initialize(dev); dev_set_name(dev, "region%d", nd_region->id); dev->parent = &nvdimm_bus->dev; dev->type = dev_type; dev->groups = ndr_desc->attr_groups; + set_dev_node(dev, ndr_desc->numa_node); nd_region->ndr_size = resource_size(ndr_desc->res); nd_region->ndr_start = ndr_desc->res->start; - nd_device_register(dev); + __nd_device_register(dev); return nd_region; diff --git a/include/linux/libnvdimm.h b/include/linux/libnvdimm.h index dc799a29ed1a..30b3deaafd51 100644 --- a/include/linux/libnvdimm.h +++ b/include/linux/libnvdimm.h @@ -89,6 +89,7 @@ struct nd_region_desc { struct nd_interleave_set *nd_set; void *provider_data; int num_lanes; + int numa_node; }; struct nvdimm_bus;
WARNING: multiple messages have this Message-ID (diff)
From: Dan Williams <dan.j.williams@intel.com> To: linux-nvdimm@ml01.01.org Cc: axboe@kernel.dk, boaz@plexistor.com, toshi.kani@hp.com, linux-kernel@vger.kernel.org, hch@lst.de, linux-acpi@vger.kernel.org, linux-fsdevel@vger.kernel.org, mingo@kernel.org Subject: [PATCH v2 15/17] libnvdimm: Set numa_node to NVDIMM devices Date: Thu, 25 Jun 2015 05:37:38 -0400 [thread overview] Message-ID: <20150625093738.40066.88750.stgit@dwillia2-desk3.jf.intel.com> (raw) In-Reply-To: <20150625090554.40066.69562.stgit@dwillia2-desk3.jf.intel.com> From: Toshi Kani <toshi.kani@hp.com> ACPI NFIT table has System Physical Address Range Structure entries that describe a proximity ID of each range when ACPI_NFIT_PROXIMITY_VALID is set in the flags. Change acpi_nfit_register_region() to map a proximity ID to its node ID, and set it to a new numa_node field of nd_region_desc, which is then conveyed to the nd_region device. The device core arranges for btt and namespace devices to inherit their node from their parent region. Signed-off-by: Toshi Kani <toshi.kani@hp.com> [djbw: move set_dev_node() from region 'probe' to 'create'] Signed-off-by: Dan Williams <dan.j.williams@intel.com> --- drivers/acpi/nfit.c | 6 ++++++ drivers/nvdimm/region_devs.c | 4 +++- include/linux/libnvdimm.h | 1 + 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/drivers/acpi/nfit.c b/drivers/acpi/nfit.c index 1f6f1b1a54f4..d96c8fe974dd 100644 --- a/drivers/acpi/nfit.c +++ b/drivers/acpi/nfit.c @@ -1392,6 +1392,12 @@ static int acpi_nfit_register_region(struct acpi_nfit_desc *acpi_desc, ndr_desc->res = &res; ndr_desc->provider_data = nfit_spa; ndr_desc->attr_groups = acpi_nfit_region_attribute_groups; + if (spa->flags & ACPI_NFIT_PROXIMITY_VALID) + ndr_desc->numa_node = acpi_map_pxm_to_online_node( + spa->proximity_domain); + else + ndr_desc->numa_node = NUMA_NO_NODE; + list_for_each_entry(nfit_memdev, &acpi_desc->memdevs, list) { struct acpi_nfit_memory_map *memdev = nfit_memdev->memdev; struct nd_mapping *nd_mapping; diff --git a/drivers/nvdimm/region_devs.c b/drivers/nvdimm/region_devs.c index 8f8c7ea485f1..b2ec5045f5a5 100644 --- a/drivers/nvdimm/region_devs.c +++ b/drivers/nvdimm/region_devs.c @@ -738,13 +738,15 @@ static struct nd_region *nd_region_create(struct nvdimm_bus *nvdimm_bus, nd_region->ro = ro; ida_init(&nd_region->ns_ida); dev = &nd_region->dev; + device_initialize(dev); dev_set_name(dev, "region%d", nd_region->id); dev->parent = &nvdimm_bus->dev; dev->type = dev_type; dev->groups = ndr_desc->attr_groups; + set_dev_node(dev, ndr_desc->numa_node); nd_region->ndr_size = resource_size(ndr_desc->res); nd_region->ndr_start = ndr_desc->res->start; - nd_device_register(dev); + __nd_device_register(dev); return nd_region; diff --git a/include/linux/libnvdimm.h b/include/linux/libnvdimm.h index dc799a29ed1a..30b3deaafd51 100644 --- a/include/linux/libnvdimm.h +++ b/include/linux/libnvdimm.h @@ -89,6 +89,7 @@ struct nd_region_desc { struct nd_interleave_set *nd_set; void *provider_data; int num_lanes; + int numa_node; }; struct nvdimm_bus;
next prev parent reply other threads:[~2015-06-25 9:37 UTC|newest] Thread overview: 70+ messages / expand[flat|nested] mbox.gz Atom feed top 2015-06-25 9:36 [PATCH v2 00/17] libnvdimm: ->rw_bytes(), BLK, BTT, PMEM api, and unit tests Dan Williams 2015-06-25 9:36 ` Dan Williams 2015-06-25 9:36 ` [PATCH v2 01/17] libnvdimm: infrastructure for btt devices Dan Williams 2015-06-25 9:36 ` Dan Williams 2015-06-25 9:36 ` [PATCH v2 02/17] nd_btt: atomic sector updates Dan Williams 2015-06-25 9:36 ` Dan Williams 2015-06-25 9:36 ` [PATCH v2 03/17] libnvdimm, nfit, nd_blk: driver for BLK-mode access persistent memory Dan Williams 2015-06-25 9:36 ` Dan Williams 2015-06-25 9:36 ` [PATCH v2 04/17] tools/testing/nvdimm: libnvdimm unit test infrastructure Dan Williams 2015-06-25 9:36 ` Dan Williams 2015-06-25 9:36 ` [PATCH v2 05/17] libnvdimm: Non-Volatile Devices Dan Williams 2015-06-25 9:36 ` Dan Williams 2015-06-25 9:36 ` Dan Williams 2015-06-25 9:36 ` [PATCH v2 06/17] fs/block_dev.c: skip rw_page if bdev has integrity Dan Williams 2015-06-25 9:36 ` Dan Williams 2015-06-25 9:36 ` [PATCH v2 07/17] libnvdimm, btt: add support for blk integrity Dan Williams 2015-06-25 9:36 ` Dan Williams 2015-06-25 9:37 ` [PATCH v2 08/17] libnvdimm, blk: " Dan Williams 2015-06-25 9:37 ` Dan Williams 2015-06-25 9:37 ` [PATCH v2 09/17] libnvdimm, pmem: fix up max_hw_sectors Dan Williams 2015-06-25 9:37 ` Dan Williams 2015-06-25 9:37 ` [PATCH v2 10/17] pmem: make_request cleanups Dan Williams 2015-06-25 9:37 ` Dan Williams 2015-06-25 9:37 ` [PATCH v2 11/17] libnvdimm: enable iostat Dan Williams 2015-06-25 9:37 ` Dan Williams 2015-06-25 9:37 ` [PATCH v2 12/17] pmem: flag pmem block devices as non-rotational Dan Williams 2015-06-25 9:37 ` Dan Williams 2015-06-25 9:37 ` [PATCH v2 13/17] libnvdimm, nfit: handle unarmed dimms, mark namespaces read-only Dan Williams 2015-06-25 9:37 ` Dan Williams 2015-06-25 9:37 ` [PATCH v2 14/17] acpi: Add acpi_map_pxm_to_online_node() Dan Williams 2015-06-25 9:37 ` Dan Williams 2015-06-25 9:37 ` Dan Williams [this message] 2015-06-25 9:37 ` [PATCH v2 15/17] libnvdimm: Set numa_node to NVDIMM devices Dan Williams 2015-06-25 17:45 ` Toshi Kani 2015-06-25 17:45 ` Toshi Kani 2015-06-25 17:47 ` Dan Williams 2015-06-25 17:47 ` Dan Williams 2015-06-25 18:34 ` Williams, Dan J 2015-06-25 18:34 ` Williams, Dan J 2015-06-25 21:31 ` Dan Williams 2015-06-25 21:31 ` Dan Williams 2015-06-25 21:51 ` Toshi Kani 2015-06-25 21:51 ` Toshi Kani 2015-06-25 22:00 ` Dan Williams 2015-06-25 22:00 ` Dan Williams 2015-06-25 22:11 ` Toshi Kani 2015-06-25 22:11 ` Toshi Kani 2015-06-25 22:34 ` Dan Williams 2015-06-25 22:34 ` Dan Williams 2015-06-25 22:55 ` Toshi Kani 2015-06-25 22:55 ` Toshi Kani 2015-06-25 23:42 ` Williams, Dan J 2015-06-25 23:42 ` Williams, Dan J 2015-06-26 0:55 ` Toshi Kani 2015-06-26 0:55 ` Toshi Kani 2015-06-26 1:08 ` Dan Williams 2015-06-26 1:08 ` Dan Williams 2015-06-26 1:21 ` Toshi Kani 2015-06-26 1:21 ` Toshi Kani 2015-06-25 9:37 ` [PATCH v2 16/17] libnvdimm: Add sysfs " Dan Williams 2015-06-25 9:37 ` Dan Williams 2015-06-26 2:21 ` Toshi Kani 2015-06-26 2:21 ` Toshi Kani 2015-06-26 15:26 ` Dan Williams 2015-06-26 15:26 ` Dan Williams 2015-06-25 9:37 ` [PATCH v2 17/17] arch, x86: pmem api for ensuring durability of persistent memory updates Dan Williams 2015-06-25 9:37 ` Dan Williams 2015-06-30 10:21 ` Dan Carpenter 2015-06-30 16:23 ` Williams, Dan J 2015-06-30 16:23 ` Williams, Dan J
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=20150625093738.40066.88750.stgit@dwillia2-desk3.jf.intel.com \ --to=dan.j.williams@intel.com \ --cc=axboe@kernel.dk \ --cc=boaz@plexistor.com \ --cc=hch@lst.de \ --cc=linux-acpi@vger.kernel.org \ --cc=linux-fsdevel@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-nvdimm@lists.01.org \ --cc=mingo@kernel.org \ --cc=toshi.kani@hp.com \ /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.