From: <shiju.jose@huawei.com>
To: <rafael@kernel.org>, <bp@alien8.de>, <akpm@linux-foundation.org>,
<rppt@kernel.org>, <dferguson@amperecomputing.com>,
<linux-edac@vger.kernel.org>, <linux-acpi@vger.kernel.org>,
<linux-mm@kvack.org>, <linux-doc@vger.kernel.org>,
<tony.luck@intel.com>, <lenb@kernel.org>, <leo.duran@amd.com>,
<Yazen.Ghannam@amd.com>, <mchehab@kernel.org>
Cc: <jonathan.cameron@huawei.com>, <linuxarm@huawei.com>,
<rientjes@google.com>, <jiaqiyan@google.com>, <Jon.Grimm@amd.com>,
<dave.hansen@linux.intel.com>, <naoya.horiguchi@nec.com>,
<james.morse@arm.com>, <jthoughton@google.com>,
<somasundaram.a@hpe.com>, <erdemaktas@google.com>,
<pgonda@google.com>, <duenwen@google.com>, <gthelen@google.com>,
<wschwartz@amperecomputing.com>, <wbs@os.amperecomputing.com>,
<nifan.cxl@gmail.com>, <tanxiaofei@huawei.com>,
<prime.zeng@hisilicon.com>, <roberto.sassu@huawei.com>,
<kangkang.shen@futurewei.com>, <wanghuiqiang@huawei.com>,
<shiju.jose@huawei.com>
Subject: [PATCH v10 1/3] mm: Add node_to_range lookup facility to numa_memblks
Date: Fri, 1 Aug 2025 18:20:27 +0100 [thread overview]
Message-ID: <20250801172040.2175-2-shiju.jose@huawei.com> (raw)
In-Reply-To: <20250801172040.2175-1-shiju.jose@huawei.com>
From: Shiju Jose <shiju.jose@huawei.com>
Lookup facility to retrieve memory phys lowest continuous range for
a NUMA node is required in the numa_memblks for the ACPI RAS2 memory
scrub use case.
Suggested-by: Jonathan Cameron <jonathan.cameron@huawei.com>
Signed-off-by: Shiju Jose <shiju.jose@huawei.com>
---
include/linux/numa.h | 10 ++++++++++
include/linux/numa_memblks.h | 2 ++
mm/numa.c | 10 ++++++++++
mm/numa_memblks.c | 23 +++++++++++++++++++++++
4 files changed, 45 insertions(+)
diff --git a/include/linux/numa.h b/include/linux/numa.h
index e6baaf6051bc..d41e583a902d 100644
--- a/include/linux/numa.h
+++ b/include/linux/numa.h
@@ -41,6 +41,10 @@ int memory_add_physaddr_to_nid(u64 start);
int phys_to_target_node(u64 start);
#endif
+#ifndef node_to_phys_lowest_continuous_range
+int node_to_phys_lowest_continuous_range(int nid, u64 *start, u64 *end);
+#endif
+
int numa_fill_memblks(u64 start, u64 end);
#else /* !CONFIG_NUMA */
@@ -63,6 +67,12 @@ static inline int phys_to_target_node(u64 start)
return 0;
}
+static inline int node_to_phys_lowest_continuous_range(int nid, u64 *start,
+ u64 *end)
+{
+ return 0;
+}
+
static inline void alloc_offline_node_data(int nid) {}
#endif
diff --git a/include/linux/numa_memblks.h b/include/linux/numa_memblks.h
index 991076cba7c5..ccc53029de8b 100644
--- a/include/linux/numa_memblks.h
+++ b/include/linux/numa_memblks.h
@@ -55,6 +55,8 @@ extern int phys_to_target_node(u64 start);
#define phys_to_target_node phys_to_target_node
extern int memory_add_physaddr_to_nid(u64 start);
#define memory_add_physaddr_to_nid memory_add_physaddr_to_nid
+extern int node_to_phys_lowest_continuous_range(int nid, u64 *start, u64 *end);
+#define node_to_phys_lowest_continuous_range node_to_phys_lowest_continuous_range
#endif /* CONFIG_NUMA_KEEP_MEMINFO */
#endif /* CONFIG_NUMA_MEMBLKS */
diff --git a/mm/numa.c b/mm/numa.c
index 7d5e06fe5bd4..0affb56ef4f2 100644
--- a/mm/numa.c
+++ b/mm/numa.c
@@ -59,3 +59,13 @@ int phys_to_target_node(u64 start)
}
EXPORT_SYMBOL_GPL(phys_to_target_node);
#endif
+
+#ifndef node_to_phys_lowest_continuous_range
+int node_to_phys_lowest_continuous_range(int nid, u64 *start, u64 *end)
+{
+ pr_info_once("Unknown target phys addr range for node=%d\n", nid);
+
+ return 0;
+}
+EXPORT_SYMBOL_GPL(node_to_phys_lowest_continuous_range);
+#endif
diff --git a/mm/numa_memblks.c b/mm/numa_memblks.c
index 541a99c4071a..9cbaa38cb92d 100644
--- a/mm/numa_memblks.c
+++ b/mm/numa_memblks.c
@@ -590,4 +590,27 @@ int memory_add_physaddr_to_nid(u64 start)
}
EXPORT_SYMBOL_GPL(memory_add_physaddr_to_nid);
+static int nid_to_meminfo(struct numa_meminfo *mi, int nid, u64 *start, u64 *end)
+{
+ int i;
+
+ if (!numa_valid_node(nid))
+ return -EINVAL;
+
+ for (i = 0; i < mi->nr_blks; i++) {
+ if (mi->blk[i].nid == nid) {
+ *start = mi->blk[i].start;
+ *end = mi->blk[i].end;
+ return 0;
+ }
+ }
+
+ return -ENODEV;
+}
+
+int node_to_phys_lowest_continuous_range(int nid, u64 *start, u64 *end)
+{
+ return nid_to_meminfo(&numa_meminfo, nid, start, end);
+}
+EXPORT_SYMBOL_GPL(node_to_phys_lowest_continuous_range);
#endif /* CONFIG_NUMA_KEEP_MEMINFO */
--
2.43.0
next prev parent reply other threads:[~2025-08-01 17:21 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-08-01 17:20 [PATCH v10 0/3] ACPI: Add support for ACPI RAS2 feature table shiju.jose
2025-08-01 17:20 ` shiju.jose [this message]
2025-08-05 10:19 ` [PATCH v10 1/3] mm: Add node_to_range lookup facility to numa_memblks Mike Rapoport
2025-08-05 16:36 ` Shiju Jose
2025-08-11 15:28 ` Borislav Petkov
2025-08-01 17:20 ` [PATCH v10 2/3] ACPI:RAS2: Add ACPI RAS2 driver shiju.jose
2025-08-01 17:20 ` [PATCH v10 3/3] ras: mem: Add memory " shiju.jose
2025-08-08 16:39 ` [PATCH v10 0/3] ACPI: Add support for ACPI RAS2 feature table Daniel Ferguson
2025-08-11 12:07 ` Shiju Jose
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=20250801172040.2175-2-shiju.jose@huawei.com \
--to=shiju.jose@huawei.com \
--cc=Jon.Grimm@amd.com \
--cc=Yazen.Ghannam@amd.com \
--cc=akpm@linux-foundation.org \
--cc=bp@alien8.de \
--cc=dave.hansen@linux.intel.com \
--cc=dferguson@amperecomputing.com \
--cc=duenwen@google.com \
--cc=erdemaktas@google.com \
--cc=gthelen@google.com \
--cc=james.morse@arm.com \
--cc=jiaqiyan@google.com \
--cc=jonathan.cameron@huawei.com \
--cc=jthoughton@google.com \
--cc=kangkang.shen@futurewei.com \
--cc=lenb@kernel.org \
--cc=leo.duran@amd.com \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-edac@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linuxarm@huawei.com \
--cc=mchehab@kernel.org \
--cc=naoya.horiguchi@nec.com \
--cc=nifan.cxl@gmail.com \
--cc=pgonda@google.com \
--cc=prime.zeng@hisilicon.com \
--cc=rafael@kernel.org \
--cc=rientjes@google.com \
--cc=roberto.sassu@huawei.com \
--cc=rppt@kernel.org \
--cc=somasundaram.a@hpe.com \
--cc=tanxiaofei@huawei.com \
--cc=tony.luck@intel.com \
--cc=wanghuiqiang@huawei.com \
--cc=wbs@os.amperecomputing.com \
--cc=wschwartz@amperecomputing.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: 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