hc
2023-12-08 01573e231f18eb2d99162747186f59511f56b64d
kernel/include/linux/numa.h
....@@ -1,7 +1,7 @@
11 /* SPDX-License-Identifier: GPL-2.0 */
22 #ifndef _LINUX_NUMA_H
33 #define _LINUX_NUMA_H
4
-
4
+#include <linux/types.h>
55
66 #ifdef CONFIG_NODES_SHIFT
77 #define NODES_SHIFT CONFIG_NODES_SHIFT
....@@ -13,4 +13,49 @@
1313
1414 #define NUMA_NO_NODE (-1)
1515
16
+/* optionally keep NUMA memory info available post init */
17
+#ifdef CONFIG_NUMA_KEEP_MEMINFO
18
+#define __initdata_or_meminfo
19
+#else
20
+#define __initdata_or_meminfo __initdata
21
+#endif
22
+
23
+#ifdef CONFIG_NUMA
24
+#include <linux/printk.h>
25
+#include <asm/sparsemem.h>
26
+
27
+/* Generic implementation available */
28
+int numa_map_to_online_node(int node);
29
+
30
+#ifndef memory_add_physaddr_to_nid
31
+static inline int memory_add_physaddr_to_nid(u64 start)
32
+{
33
+ pr_info_once("Unknown online node for memory at 0x%llx, assuming node 0\n",
34
+ start);
35
+ return 0;
36
+}
37
+#endif
38
+#ifndef phys_to_target_node
39
+static inline int phys_to_target_node(u64 start)
40
+{
41
+ pr_info_once("Unknown target node for memory at 0x%llx, assuming node 0\n",
42
+ start);
43
+ return 0;
44
+}
45
+#endif
46
+#else /* !CONFIG_NUMA */
47
+static inline int numa_map_to_online_node(int node)
48
+{
49
+ return NUMA_NO_NODE;
50
+}
51
+static inline int memory_add_physaddr_to_nid(u64 start)
52
+{
53
+ return 0;
54
+}
55
+static inline int phys_to_target_node(u64 start)
56
+{
57
+ return 0;
58
+}
59
+#endif
60
+
1661 #endif /* _LINUX_NUMA_H */