|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [RFC PATCH v2 08/25] x86: NUMA: Sanitize node distance
From: Vijaya Kumar K <Vijaya.Kumar@xxxxxxxxxx>
Introduce acpi_node_distance() and call from __node_distance().
This helps to implement arch specific __node_distance().
Also introduce LOCAL_DISTANCE & REMOTE DISTANCE macros.
Signed-off-by: Vijaya Kumar K <Vijaya.Kumar@xxxxxxxxxx>
---
xen/arch/x86/srat.c | 13 +++++++++----
xen/include/xen/numa.h | 2 ++
2 files changed, 11 insertions(+), 4 deletions(-)
diff --git a/xen/arch/x86/srat.c b/xen/arch/x86/srat.c
index 3ade36d..7cf4771 100644
--- a/xen/arch/x86/srat.c
+++ b/xen/arch/x86/srat.c
@@ -221,9 +221,9 @@ static int __init slit_valid(struct acpi_table_slit *slit)
for (j = 0; j < d; j++) {
uint8_t val = slit->entry[d*i + j];
if (i == j) {
- if (val != 10)
+ if (val != LOCAL_DISTANCE)
return 0;
- } else if (val <= 10)
+ } else if (val <= LOCAL_DISTANCE)
return 0;
}
}
@@ -576,13 +576,13 @@ static unsigned node_to_pxm(nodeid_t n)
return 0;
}
-uint8_t __node_distance(nodeid_t a, nodeid_t b)
+static uint8_t acpi_node_distance(nodeid_t a, nodeid_t b)
{
unsigned index;
uint8_t slit_val;
if (!acpi_slit)
- return a == b ? 10 : 20;
+ return a == b ? LOCAL_DISTANCE : REMOTE_DISTANCE;
index = acpi_slit->locality_count * node_to_pxm(a);
slit_val = acpi_slit->entry[index + node_to_pxm(b)];
@@ -593,4 +593,9 @@ uint8_t __node_distance(nodeid_t a, nodeid_t b)
return slit_val;
}
+uint8_t __node_distance(nodeid_t a, nodeid_t b)
+{
+ return acpi_node_distance(a, b);
+}
+
EXPORT_SYMBOL(__node_distance);
diff --git a/xen/include/xen/numa.h b/xen/include/xen/numa.h
index 7f6d090..922fbd8 100644
--- a/xen/include/xen/numa.h
+++ b/xen/include/xen/numa.h
@@ -8,6 +8,8 @@
#endif
#define NUMA_NO_NODE 0xFF
+#define LOCAL_DISTANCE 10
+#define REMOTE_DISTANCE 20
#define NUMA_NO_DISTANCE 0xFF
#define MAX_NUMNODES (1 << NODES_SHIFT)
--
2.7.4
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |