public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [tip:x86/urgent] arch/x86/mm/srat: Skip NUMA_NO_NODE while parsing SLIT
@ 2014-01-25 14:25 tip-bot for Toshi Kani
  2014-01-26  8:43 ` Yinghai Lu
  0 siblings, 1 reply; 13+ messages in thread
From: tip-bot for Toshi Kani @ 2014-01-25 14:25 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: linux-kernel, hpa, mingo, yinghai, toshi.kani, akpm, tglx,
	rientjes

Commit-ID:  a85eba8814631d0d48361c8b9a7ee0984e80c03c
Gitweb:     http://git.kernel.org/tip/a85eba8814631d0d48361c8b9a7ee0984e80c03c
Author:     Toshi Kani <toshi.kani@hp.com>
AuthorDate: Tue, 21 Jan 2014 14:33:15 -0800
Committer:  Ingo Molnar <mingo@kernel.org>
CommitDate: Sat, 25 Jan 2014 09:13:35 +0100

arch/x86/mm/srat: Skip NUMA_NO_NODE while parsing SLIT

When ACPI SLIT table has an I/O locality (i.e. a locality
unique to an I/O device), numa_set_distance() emits this warning
message:

 NUMA: Warning: node ids are out of bound, from=-1 to=-1 distance=10

acpi_numa_slit_init() calls numa_set_distance() with
pxm_to_node(), which assumes that all localities have been
parsed with SRAT previously.  SRAT does not list I/O localities,
where as SLIT lists all localities including I/Os.  Hence,
pxm_to_node() returns NUMA_NO_NODE (-1) for an I/O locality.

I/O localities are not supported and are ignored today, but emitting
such warning message leads to unnecessary confusion.

Change acpi_numa_slit_init() to avoid calling
numa_set_distance() with NUMA_NO_NODE.

Signed-off-by: Toshi Kani <toshi.kani@hp.com>
Acked-by: David Rientjes <rientjes@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Cc: Yinghai Lu <yinghai@kernel.org>
Link: http://lkml.kernel.org/n/tip-dSvpjjvp8aMzs1ybkftxohlh@git.kernel.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
 arch/x86/mm/srat.c | 16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)

diff --git a/arch/x86/mm/srat.c b/arch/x86/mm/srat.c
index 266ca91..5ecf651 100644
--- a/arch/x86/mm/srat.c
+++ b/arch/x86/mm/srat.c
@@ -42,15 +42,25 @@ static __init inline int srat_disabled(void)
 	return acpi_numa < 0;
 }
 
-/* Callback for SLIT parsing */
+/*
+ * Callback for SLIT parsing.  pxm_to_node() returns NUMA_NO_NODE for
+ * I/O localities since SRAT does not list them.  I/O localities are
+ * not supported at this point.
+ */
 void __init acpi_numa_slit_init(struct acpi_table_slit *slit)
 {
 	int i, j;
 
-	for (i = 0; i < slit->locality_count; i++)
-		for (j = 0; j < slit->locality_count; j++)
+	for (i = 0; i < slit->locality_count; i++) {
+		if (pxm_to_node(i) == NUMA_NO_NODE)
+			continue;
+		for (j = 0; j < slit->locality_count; j++) {
+			if (pxm_to_node(j) == NUMA_NO_NODE)
+				continue;
 			numa_set_distance(pxm_to_node(i), pxm_to_node(j),
 				slit->entry[slit->locality_count * i + j]);
+		}
+	}
 }
 
 /* Callback for Proximity Domain -> x2APIC mapping */

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

end of thread, other threads:[~2014-02-10 13:32 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-01-25 14:25 [tip:x86/urgent] arch/x86/mm/srat: Skip NUMA_NO_NODE while parsing SLIT tip-bot for Toshi Kani
2014-01-26  8:43 ` Yinghai Lu
2014-01-26  8:46   ` Ingo Molnar
2014-01-26  9:10     ` [PATCH] x86, mm: Avoid extra pxm_to_node() Yinghai Lu
2014-01-26  9:10       ` Ingo Molnar
2014-01-26  9:28       ` David Rientjes
2014-01-26 21:01     ` [PATCH v2] x86, mm: Avoid duplicated pxm_to_node() calling Yinghai Lu
2014-01-26 21:08       ` David Rientjes
2014-01-27 14:49       ` Toshi Kani
2014-01-27 19:08         ` Yinghai Lu
2014-01-27 19:05           ` Toshi Kani
2014-02-10 13:32       ` [tip:x86/mm] x86/mm: Avoid duplicated pxm_to_node() calls tip-bot for Yinghai Lu
2014-01-27 14:45   ` [tip:x86/urgent] arch/x86/mm/srat: Skip NUMA_NO_NODE while parsing SLIT Toshi Kani

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox