]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
Documentation, dt, numa: Add note to empty NUMA node
authorGavin Shan <gshan@redhat.com>
Mon, 27 Sep 2021 06:41:18 +0000 (14:41 +0800)
committerRob Herring <robh@kernel.org>
Mon, 4 Oct 2021 18:13:36 +0000 (13:13 -0500)
The empty memory nodes, where no memory resides in, are allowed.
The NUMA node IDs are still valid and parsed, but memory may be
added to them through hotplug afterwards. Currently, QEMU fails
to boot when multiple empty memory nodes are specified. It's
caused by device-tree population failure and duplicated memory
node names.

The device-tree specification doesn't provide how empty NUMA
nodes are handled. Besides, I finds difficulty to get where
this case is documented. So lets add a section for empty memory
nodes to cover it in NUMA binding document.

Signed-off-by: Gavin Shan <gshan@redhat.com>
Link: https://lore.kernel.org/r/20210927064119.127285-2-gshan@redhat.com
Signed-off-by: Rob Herring <robh@kernel.org>
Documentation/devicetree/bindings/numa.txt

index 21b35053ca5a7c3abca7cfe4c779eb14e14ea9c8..42f282c2f3cc4522d0e501c28e6ebce35b398537 100644 (file)
@@ -103,7 +103,51 @@ Example:
                };
 
 ==============================================================================
-4 - Example dts
+4 - Empty memory nodes
+==============================================================================
+
+Empty memory nodes, which no memory resides in, are allowed. There are no
+device nodes for these empty memory nodes. However, the NUMA node IDs and
+distance maps are still valid and memory may be added into them through
+hotplug afterwards.
+
+Example:
+
+       memory@0 {
+               device_type = "memory";
+               reg = <0x0 0x0 0x0 0x80000000>;
+               numa-node-id = <0>;
+       };
+
+       memory@80000000 {
+               device_type = "memory";
+               reg = <0x0 0x80000000 0x0 0x80000000>;
+               numa-node-id = <1>;
+       };
+
+       /* Empty memory node 2 and 3 */
+       distance-map {
+               compatible = "numa-distance-map-v1";
+               distance-matrix = <0 0  10>,
+                                 <0 1  20>,
+                                 <0 2  40>,
+                                 <0 3  20>,
+                                 <1 0  20>,
+                                 <1 1  10>,
+                                 <1 2  20>,
+                                 <1 3  40>,
+                                 <2 0  40>,
+                                 <2 1  20>,
+                                 <2 2  10>,
+                                 <2 3  20>,
+                                 <3 0  20>,
+                                 <3 1  40>,
+                                 <3 2  20>,
+                                 <3 3  10>;
+       };
+
+==============================================================================
+5 - Example dts
 ==============================================================================
 
 Dual socket system consists of 2 boards connected through ccn bus and