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

TOMOYO Linux Cross Reference
Linux/Documentation/admin-guide/mm/numaperf.rst

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/admin-guide/mm/numaperf.rst (Version linux-6.12-rc7) and /Documentation/admin-guide/mm/numaperf.rst (Version linux-4.4.302)


  1 =======================                           
  2 NUMA Memory Performance                           
  3 =======================                           
  4                                                   
  5 NUMA Locality                                     
  6 =============                                     
  7                                                   
  8 Some platforms may have multiple types of memo    
  9 node. These disparate memory ranges may share     
 10 as CPU cache coherence, but may have different    
 11 different media types and buses affect bandwid    
 12                                                   
 13 A system supports such heterogeneous memory by    
 14 under different domains, or "nodes", based on     
 15 characteristics.  Some memory may share the sa    
 16 are provided as memory only nodes. While memor    
 17 CPUs, they may still be local to one or more c    
 18 other nodes. The following diagram shows one s    
 19 nodes with local memory and a memory only node    
 20                                                   
 21  +------------------+     +------------------+    
 22  | Compute Node 0   +-----+ Compute Node 1   |    
 23  | Local Node0 Mem  |     | Local Node1 Mem  |    
 24  +--------+---------+     +--------+---------+    
 25           |                        |              
 26  +--------+---------+     +--------+---------+    
 27  | Slower Node2 Mem |     | Slower Node3 Mem |    
 28  +------------------+     +--------+---------+    
 29                                                   
 30 A "memory initiator" is a node containing one     
 31 CPUs or separate memory I/O devices that can i    
 32 A "memory target" is a node containing one or     
 33 ranges accessible from one or more memory init    
 34                                                   
 35 When multiple memory initiators exist, they ma    
 36 performance when accessing a given memory targ    
 37 pair may be organized into different ranked ac    
 38 this relationship. The highest performing init    
 39 is considered to be one of that target's local    
 40 the highest access class, 0. Any given target     
 41 local initiators, and any given initiator may     
 42 memory targets.                                   
 43                                                   
 44 To aid applications matching memory targets wi    
 45 kernel provides symlinks to each other. The fo    
 46 relationship for the access class "0" memory i    
 47                                                   
 48         # symlinks -v /sys/devices/system/node    
 49         relative: /sys/devices/system/node/nod    
 50                                                   
 51         # symlinks -v /sys/devices/system/node    
 52         relative: /sys/devices/system/node/nod    
 53                                                   
 54 A memory initiator may have multiple memory ta    
 55 class. The target memory's initiators in a giv    
 56 nodes' access characteristics share the same p    
 57 linked initiator nodes. Each target within an     
 58 though, do not necessarily perform the same as    
 59                                                   
 60 The access class "1" is used to allow differen    
 61 that are CPUs and hence suitable for generic t    
 62 IO initiators such as GPUs and NICs.  Unlike a    
 63 nodes containing CPUs are considered.             
 64                                                   
 65 NUMA Performance                                  
 66 ================                                  
 67                                                   
 68 Applications may wish to consider which node t    
 69 be allocated from based on the node's performa    
 70 the system provides these attributes, the kern    
 71 node sysfs hierarchy by appending the attribut    
 72 memory node's access class 0 initiators as fol    
 73                                                   
 74         /sys/devices/system/node/nodeY/access0    
 75                                                   
 76 These attributes apply only when accessed from    
 77 are linked under the this access's initiators.    
 78                                                   
 79 The performance characteristics the kernel pro    
 80 are exported are as follows::                     
 81                                                   
 82         # tree -P "read*|write*" /sys/devices/    
 83         /sys/devices/system/node/nodeY/access0    
 84         |-- read_bandwidth                        
 85         |-- read_latency                          
 86         |-- write_bandwidth                       
 87         `-- write_latency                         
 88                                                   
 89 The bandwidth attributes are provided in MiB/s    
 90                                                   
 91 The latency attributes are provided in nanosec    
 92                                                   
 93 The values reported here correspond to the rat    
 94 for the platform.                                 
 95                                                   
 96 Access class 1 takes the same form but only in    
 97 memory activity.                                  
 98                                                   
 99 NUMA Cache                                        
100 ==========                                        
101                                                   
102 System memory may be constructed in a hierarch    
103 performance characteristics in order to provid    
104 slower performing memory cached by a smaller h    
105 system physical addresses memory  initiators a    
106 by the last memory level in the hierarchy. The    
107 higher performing memory to transparently cach    
108 slower levels.                                    
109                                                   
110 The term "far memory" is used to denote the la    
111 hierarchy. Each increasing cache level provide    
112 initiator access, and the term "near memory" r    
113 cache provided by the system.                     
114                                                   
115 This numbering is different than CPU caches wh    
116 L1, L2, L3) uses the CPU-side view where each     
117 performing. In contrast, the memory cache leve    
118 level memory, so the higher numbered cache lev    
119 nearer to the CPU, and further from far memory    
120                                                   
121 The memory-side caches are not directly addres    
122 software accesses a system address, the system    
123 near memory cache if it is present. If it is n    
124 accesses the next level of memory until there     
125 cache level, or it reaches far memory.            
126                                                   
127 An application does not need to know about cac    
128 to use the system. Software may optionally que    
129 attributes in order to maximize the performanc    
130 If the system provides a way for the kernel to    
131 for example with ACPI HMAT (Heterogeneous Memo    
132 the kernel will append these attributes to the    
133                                                   
134 When the kernel first registers a memory cache    
135 will create the following directory::             
136                                                   
137         /sys/devices/system/node/nodeX/memory_    
138                                                   
139 If that directory is not present, the system e    
140 a memory-side cache, or that information is no    
141                                                   
142 The attributes for each level of cache is prov    
143 level index::                                     
144                                                   
145         /sys/devices/system/node/nodeX/memory_    
146         /sys/devices/system/node/nodeX/memory_    
147         /sys/devices/system/node/nodeX/memory_    
148                                                   
149 Each cache level's directory provides its attr    
150 following shows a single cache level and the a    
151 software to query::                               
152                                                   
153         # tree /sys/devices/system/node/node0/    
154         /sys/devices/system/node/node0/memory_    
155         |-- index1                                
156         |   |-- indexing                          
157         |   |-- line_size                         
158         |   |-- size                              
159         |   `-- write_policy                      
160                                                   
161 The "indexing" will be 0 if it is a direct-map    
162 for any other indexed based, multi-way associa    
163                                                   
164 The "line_size" is the number of bytes accesse    
165 level on a miss.                                  
166                                                   
167 The "size" is the number of bytes provided by     
168                                                   
169 The "write_policy" will be 0 for write-back, a    
170 write-through caching.                            
171                                                   
172 See Also                                          
173 ========                                          
174                                                   
175 [1] https://www.uefi.org/sites/default/files/r    
176 - Section 5.2.27                                  
                                                      

~ [ 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