Documentation, dt, numa: Add note to empty NUMA node

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>
This commit is contained in:
Gavin Shan 2021-09-27 14:41:18 +08:00 committed by Rob Herring
parent 71a9aa162d
commit 58ae0b5150
1 changed files with 45 additions and 1 deletions

View 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