~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/devicetree/bindings/numa.txt

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /Documentation/devicetree/bindings/numa.txt (Version linux-6.12-rc7) and /Documentation/devicetree/bindings/numa.txt (Version linux-5.13.19)


  1 ==============================================      1 ==============================================================================
  2 NUMA binding description.                           2 NUMA binding description.
  3 ==============================================      3 ==============================================================================
  4                                                     4 
  5 ==============================================      5 ==============================================================================
  6 1 - Introduction                                    6 1 - Introduction
  7 ==============================================      7 ==============================================================================
  8                                                     8 
  9 Systems employing a Non Uniform Memory Access       9 Systems employing a Non Uniform Memory Access (NUMA) architecture contain
 10 collections of hardware resources including pr     10 collections of hardware resources including processors, memory, and I/O buses,
 11 that comprise what is commonly known as a NUMA     11 that comprise what is commonly known as a NUMA node.
 12 Processor accesses to memory within the local      12 Processor accesses to memory within the local NUMA node is generally faster
 13 than processor accesses to memory outside of t     13 than processor accesses to memory outside of the local NUMA node.
 14 DT defines interfaces that allow the platform      14 DT defines interfaces that allow the platform to convey NUMA node
 15 topology information to OS.                        15 topology information to OS.
 16                                                    16 
 17 ==============================================     17 ==============================================================================
 18 2 - numa-node-id                                   18 2 - numa-node-id
 19 ==============================================     19 ==============================================================================
 20                                                    20 
 21 For the purpose of identification, each NUMA n     21 For the purpose of identification, each NUMA node is associated with a unique
 22 token known as a node id. For the purpose of t     22 token known as a node id. For the purpose of this binding
 23 a node id is a 32-bit integer.                     23 a node id is a 32-bit integer.
 24                                                    24 
 25 A device node is associated with a NUMA node b     25 A device node is associated with a NUMA node by the presence of a
 26 numa-node-id property which contains the node      26 numa-node-id property which contains the node id of the device.
 27                                                    27 
 28 Example:                                           28 Example:
 29         /* numa node 0 */                          29         /* numa node 0 */
 30         numa-node-id = <0>;                        30         numa-node-id = <0>;
 31                                                    31 
 32         /* numa node 1 */                          32         /* numa node 1 */
 33         numa-node-id = <1>;                        33         numa-node-id = <1>;
 34                                                    34 
 35 ==============================================     35 ==============================================================================
 36 3 - distance-map                                   36 3 - distance-map
 37 ==============================================     37 ==============================================================================
 38                                                    38 
 39 The optional device tree node distance-map des     39 The optional device tree node distance-map describes the relative
 40 distance (memory latency) between all numa nod     40 distance (memory latency) between all numa nodes.
 41                                                    41 
 42 - compatible : Should at least contain "numa-d     42 - compatible : Should at least contain "numa-distance-map-v1".
 43                                                    43 
 44 - distance-matrix                                  44 - distance-matrix
 45   This property defines a matrix to describe t     45   This property defines a matrix to describe the relative distances
 46   between all numa nodes.                          46   between all numa nodes.
 47   It is represented as a list of node pairs an     47   It is represented as a list of node pairs and their relative distance.
 48                                                    48 
 49   Note:                                            49   Note:
 50         1. Each entry represents distance from     50         1. Each entry represents distance from first node to second node.
 51         The distances are equal in either dire     51         The distances are equal in either direction.
 52         2. The distance from a node to self (l     52         2. The distance from a node to self (local distance) is represented
 53         with value 10 and all internode distan     53         with value 10 and all internode distance should be represented with
 54         a value greater than 10.                   54         a value greater than 10.
 55         3. distance-matrix should have entries     55         3. distance-matrix should have entries in lexicographical ascending
 56         order of nodes.                            56         order of nodes.
 57         4. There must be only one device node      57         4. There must be only one device node distance-map which must
 58         reside in the root node.                   58         reside in the root node.
 59         5. If the distance-map node is not pre     59         5. If the distance-map node is not present, a default
 60         distance-matrix is used.                   60         distance-matrix is used.
 61                                                    61 
 62 Example:                                           62 Example:
 63         4 nodes connected in mesh/ring topolog     63         4 nodes connected in mesh/ring topology as below,
 64                                                    64 
 65                 0_______20______1                  65                 0_______20______1
 66                 |               |                  66                 |               |
 67                 |               |                  67                 |               |
 68                 20             20                  68                 20             20
 69                 |               |                  69                 |               |
 70                 |               |                  70                 |               |
 71                 |_______________|                  71                 |_______________|
 72                 3       20      2                  72                 3       20      2
 73                                                    73 
 74         if relative distance for each hop is 2     74         if relative distance for each hop is 20,
 75         then internode distance would be,          75         then internode distance would be,
 76               0 -> 1 = 20                          76               0 -> 1 = 20
 77               1 -> 2 = 20                          77               1 -> 2 = 20
 78               2 -> 3 = 20                          78               2 -> 3 = 20
 79               3 -> 0 = 20                          79               3 -> 0 = 20
 80               0 -> 2 = 40                          80               0 -> 2 = 40
 81               1 -> 3 = 40                          81               1 -> 3 = 40
 82                                                    82 
 83      and dt presentation for this distance mat     83      and dt presentation for this distance matrix is,
 84                                                    84 
 85                 distance-map {                     85                 distance-map {
 86                          compatible = "numa-di     86                          compatible = "numa-distance-map-v1";
 87                          distance-matrix = <0      87                          distance-matrix = <0 0  10>,
 88                                            <0      88                                            <0 1  20>,
 89                                            <0      89                                            <0 2  40>,
 90                                            <0      90                                            <0 3  20>,
 91                                            <1      91                                            <1 0  20>,
 92                                            <1      92                                            <1 1  10>,
 93                                            <1      93                                            <1 2  20>,
 94                                            <1      94                                            <1 3  40>,
 95                                            <2      95                                            <2 0  40>,
 96                                            <2      96                                            <2 1  20>,
 97                                            <2      97                                            <2 2  10>,
 98                                            <2      98                                            <2 3  20>,
 99                                            <3      99                                            <3 0  20>,
100                                            <3     100                                            <3 1  40>,
101                                            <3     101                                            <3 2  20>,
102                                            <3     102                                            <3 3  10>;
103                 };                                103                 };
104                                                   104 
105 ==============================================    105 ==============================================================================
106 4 - Empty memory nodes                         !! 106 4 - Example dts
107 ============================================== << 
108                                                << 
109 Empty memory nodes, which no memory resides in << 
110 device nodes for these empty memory nodes. How << 
111 distance maps are still valid and memory may b << 
112 hotplug afterwards.                            << 
113                                                << 
114 Example:                                       << 
115                                                << 
116         memory@0 {                             << 
117                 device_type = "memory";        << 
118                 reg = <0x0 0x0 0x0 0x80000000> << 
119                 numa-node-id = <0>;            << 
120         };                                     << 
121                                                << 
122         memory@80000000 {                      << 
123                 device_type = "memory";        << 
124                 reg = <0x0 0x80000000 0x0 0x80 << 
125                 numa-node-id = <1>;            << 
126         };                                     << 
127                                                << 
128         /* Empty memory node 2 and 3 */        << 
129         distance-map {                         << 
130                 compatible = "numa-distance-ma << 
131                 distance-matrix = <0 0  10>,   << 
132                                   <0 1  20>,   << 
133                                   <0 2  40>,   << 
134                                   <0 3  20>,   << 
135                                   <1 0  20>,   << 
136                                   <1 1  10>,   << 
137                                   <1 2  20>,   << 
138                                   <1 3  40>,   << 
139                                   <2 0  40>,   << 
140                                   <2 1  20>,   << 
141                                   <2 2  10>,   << 
142                                   <2 3  20>,   << 
143                                   <3 0  20>,   << 
144                                   <3 1  40>,   << 
145                                   <3 2  20>,   << 
146                                   <3 3  10>;   << 
147         };                                     << 
148                                                << 
149 ============================================== << 
150 5 - Example dts                                << 
151 ==============================================    107 ==============================================================================
152                                                   108 
153 Dual socket system consists of 2 boards connec    109 Dual socket system consists of 2 boards connected through ccn bus and
154 each board having one socket/soc of 8 cpus, me    110 each board having one socket/soc of 8 cpus, memory and pci bus.
155                                                   111 
156         memory@c00000 {                           112         memory@c00000 {
157                 device_type = "memory";           113                 device_type = "memory";
158                 reg = <0x0 0xc00000 0x0 0x8000    114                 reg = <0x0 0xc00000 0x0 0x80000000>;
159                 /* node 0 */                      115                 /* node 0 */
160                 numa-node-id = <0>;               116                 numa-node-id = <0>;
161         };                                        117         };
162                                                   118 
163         memory@10000000000 {                      119         memory@10000000000 {
164                 device_type = "memory";           120                 device_type = "memory";
165                 reg = <0x100 0x0 0x0 0x8000000    121                 reg = <0x100 0x0 0x0 0x80000000>;
166                 /* node 1 */                      122                 /* node 1 */
167                 numa-node-id = <1>;               123                 numa-node-id = <1>;
168         };                                        124         };
169                                                   125 
170         cpus {                                    126         cpus {
171                 #address-cells = <2>;             127                 #address-cells = <2>;
172                 #size-cells = <0>;                128                 #size-cells = <0>;
173                                                   129 
174                 cpu@0 {                           130                 cpu@0 {
175                         device_type = "cpu";      131                         device_type = "cpu";
176                         compatible =  "arm,arm    132                         compatible =  "arm,armv8";
177                         reg = <0x0 0x0>;          133                         reg = <0x0 0x0>;
178                         enable-method = "psci"    134                         enable-method = "psci";
179                         /* node 0 */              135                         /* node 0 */
180                         numa-node-id = <0>;       136                         numa-node-id = <0>;
181                 };                                137                 };
182                 cpu@1 {                           138                 cpu@1 {
183                         device_type = "cpu";      139                         device_type = "cpu";
184                         compatible =  "arm,arm    140                         compatible =  "arm,armv8";
185                         reg = <0x0 0x1>;          141                         reg = <0x0 0x1>;
186                         enable-method = "psci"    142                         enable-method = "psci";
187                         numa-node-id = <0>;       143                         numa-node-id = <0>;
188                 };                                144                 };
189                 cpu@2 {                           145                 cpu@2 {
190                         device_type = "cpu";      146                         device_type = "cpu";
191                         compatible =  "arm,arm    147                         compatible =  "arm,armv8";
192                         reg = <0x0 0x2>;          148                         reg = <0x0 0x2>;
193                         enable-method = "psci"    149                         enable-method = "psci";
194                         numa-node-id = <0>;       150                         numa-node-id = <0>;
195                 };                                151                 };
196                 cpu@3 {                           152                 cpu@3 {
197                         device_type = "cpu";      153                         device_type = "cpu";
198                         compatible =  "arm,arm    154                         compatible =  "arm,armv8";
199                         reg = <0x0 0x3>;          155                         reg = <0x0 0x3>;
200                         enable-method = "psci"    156                         enable-method = "psci";
201                         numa-node-id = <0>;       157                         numa-node-id = <0>;
202                 };                                158                 };
203                 cpu@4 {                           159                 cpu@4 {
204                         device_type = "cpu";      160                         device_type = "cpu";
205                         compatible =  "arm,arm    161                         compatible =  "arm,armv8";
206                         reg = <0x0 0x4>;          162                         reg = <0x0 0x4>;
207                         enable-method = "psci"    163                         enable-method = "psci";
208                         numa-node-id = <0>;       164                         numa-node-id = <0>;
209                 };                                165                 };
210                 cpu@5 {                           166                 cpu@5 {
211                         device_type = "cpu";      167                         device_type = "cpu";
212                         compatible =  "arm,arm    168                         compatible =  "arm,armv8";
213                         reg = <0x0 0x5>;          169                         reg = <0x0 0x5>;
214                         enable-method = "psci"    170                         enable-method = "psci";
215                         numa-node-id = <0>;       171                         numa-node-id = <0>;
216                 };                                172                 };
217                 cpu@6 {                           173                 cpu@6 {
218                         device_type = "cpu";      174                         device_type = "cpu";
219                         compatible =  "arm,arm    175                         compatible =  "arm,armv8";
220                         reg = <0x0 0x6>;          176                         reg = <0x0 0x6>;
221                         enable-method = "psci"    177                         enable-method = "psci";
222                         numa-node-id = <0>;       178                         numa-node-id = <0>;
223                 };                                179                 };
224                 cpu@7 {                           180                 cpu@7 {
225                         device_type = "cpu";      181                         device_type = "cpu";
226                         compatible =  "arm,arm    182                         compatible =  "arm,armv8";
227                         reg = <0x0 0x7>;          183                         reg = <0x0 0x7>;
228                         enable-method = "psci"    184                         enable-method = "psci";
229                         numa-node-id = <0>;       185                         numa-node-id = <0>;
230                 };                                186                 };
231                 cpu@8 {                           187                 cpu@8 {
232                         device_type = "cpu";      188                         device_type = "cpu";
233                         compatible =  "arm,arm    189                         compatible =  "arm,armv8";
234                         reg = <0x0 0x8>;          190                         reg = <0x0 0x8>;
235                         enable-method = "psci"    191                         enable-method = "psci";
236                         /* node 1 */              192                         /* node 1 */
237                         numa-node-id = <1>;       193                         numa-node-id = <1>;
238                 };                                194                 };
239                 cpu@9 {                           195                 cpu@9 {
240                         device_type = "cpu";      196                         device_type = "cpu";
241                         compatible =  "arm,arm    197                         compatible =  "arm,armv8";
242                         reg = <0x0 0x9>;          198                         reg = <0x0 0x9>;
243                         enable-method = "psci"    199                         enable-method = "psci";
244                         numa-node-id = <1>;       200                         numa-node-id = <1>;
245                 };                                201                 };
246                 cpu@a {                           202                 cpu@a {
247                         device_type = "cpu";      203                         device_type = "cpu";
248                         compatible =  "arm,arm    204                         compatible =  "arm,armv8";
249                         reg = <0x0 0xa>;          205                         reg = <0x0 0xa>;
250                         enable-method = "psci"    206                         enable-method = "psci";
251                         numa-node-id = <1>;       207                         numa-node-id = <1>;
252                 };                                208                 };
253                 cpu@b {                           209                 cpu@b {
254                         device_type = "cpu";      210                         device_type = "cpu";
255                         compatible =  "arm,arm    211                         compatible =  "arm,armv8";
256                         reg = <0x0 0xb>;          212                         reg = <0x0 0xb>;
257                         enable-method = "psci"    213                         enable-method = "psci";
258                         numa-node-id = <1>;       214                         numa-node-id = <1>;
259                 };                                215                 };
260                 cpu@c {                           216                 cpu@c {
261                         device_type = "cpu";      217                         device_type = "cpu";
262                         compatible =  "arm,arm    218                         compatible =  "arm,armv8";
263                         reg = <0x0 0xc>;          219                         reg = <0x0 0xc>;
264                         enable-method = "psci"    220                         enable-method = "psci";
265                         numa-node-id = <1>;       221                         numa-node-id = <1>;
266                 };                                222                 };
267                 cpu@d {                           223                 cpu@d {
268                         device_type = "cpu";      224                         device_type = "cpu";
269                         compatible =  "arm,arm    225                         compatible =  "arm,armv8";
270                         reg = <0x0 0xd>;          226                         reg = <0x0 0xd>;
271                         enable-method = "psci"    227                         enable-method = "psci";
272                         numa-node-id = <1>;       228                         numa-node-id = <1>;
273                 };                                229                 };
274                 cpu@e {                           230                 cpu@e {
275                         device_type = "cpu";      231                         device_type = "cpu";
276                         compatible =  "arm,arm    232                         compatible =  "arm,armv8";
277                         reg = <0x0 0xe>;          233                         reg = <0x0 0xe>;
278                         enable-method = "psci"    234                         enable-method = "psci";
279                         numa-node-id = <1>;       235                         numa-node-id = <1>;
280                 };                                236                 };
281                 cpu@f {                           237                 cpu@f {
282                         device_type = "cpu";      238                         device_type = "cpu";
283                         compatible =  "arm,arm    239                         compatible =  "arm,armv8";
284                         reg = <0x0 0xf>;          240                         reg = <0x0 0xf>;
285                         enable-method = "psci"    241                         enable-method = "psci";
286                         numa-node-id = <1>;       242                         numa-node-id = <1>;
287                 };                                243                 };
288         };                                        244         };
289                                                   245 
290         pcie0: pcie0@848000000000 {               246         pcie0: pcie0@848000000000 {
291                 compatible = "arm,armv8";         247                 compatible = "arm,armv8";
292                 device_type = "pci";              248                 device_type = "pci";
293                 bus-range = <0 255>;              249                 bus-range = <0 255>;
294                 #size-cells = <2>;                250                 #size-cells = <2>;
295                 #address-cells = <3>;             251                 #address-cells = <3>;
296                 reg = <0x8480 0x00000000 0 0x1    252                 reg = <0x8480 0x00000000 0 0x10000000>;  /* Configuration space */
297                 ranges = <0x03000000 0x8010 0x    253                 ranges = <0x03000000 0x8010 0x00000000 0x8010 0x00000000 0x70 0x00000000>;
298                 /* node 0 */                      254                 /* node 0 */
299                 numa-node-id = <0>;               255                 numa-node-id = <0>;
300         };                                        256         };
301                                                   257 
302         pcie1: pcie1@948000000000 {               258         pcie1: pcie1@948000000000 {
303                 compatible = "arm,armv8";         259                 compatible = "arm,armv8";
304                 device_type = "pci";              260                 device_type = "pci";
305                 bus-range = <0 255>;              261                 bus-range = <0 255>;
306                 #size-cells = <2>;                262                 #size-cells = <2>;
307                 #address-cells = <3>;             263                 #address-cells = <3>;
308                 reg = <0x9480 0x00000000 0 0x1    264                 reg = <0x9480 0x00000000 0 0x10000000>;  /* Configuration space */
309                 ranges = <0x03000000 0x9010 0x    265                 ranges = <0x03000000 0x9010 0x00000000 0x9010 0x00000000 0x70 0x00000000>;
310                 /* node 1 */                      266                 /* node 1 */
311                 numa-node-id = <1>;               267                 numa-node-id = <1>;
312         };                                        268         };
313                                                   269 
314         distance-map {                            270         distance-map {
315                 compatible = "numa-distance-ma    271                 compatible = "numa-distance-map-v1";
316                 distance-matrix = <0 0 10>,       272                 distance-matrix = <0 0 10>,
317                                   <0 1 20>,       273                                   <0 1 20>,
318                                   <1 1 10>;       274                                   <1 1 10>;
319         };                                        275         };
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php