Lines Matching +full:cpu +full:- +full:core
1 .. SPDX-License-Identifier: GPL-2.0
11 The architecture-agnostic topology definitions are in
12 Documentation/admin-guide/cputopology.rst. This file holds x86-specific
17 Needless to say, code should use the generic functions - this file is *only*
35 - packages
36 - cores
37 - threads
48 Package-related topology information in the kernel:
50 - cpuinfo_x86.x86_max_cores:
54 - cpuinfo_x86.x86_max_dies:
58 - cpuinfo_x86.topo.die_id:
62 - cpuinfo_x86.topo.pkg_id:
70 - cpuinfo_x86.topo.logical_pkg_id:
77 - topology_max_packages():
82 - cpuinfo_x86.topo.llc_id:
84 - On Intel, the first APIC ID of the list of CPUs sharing the Last Level
87 - On AMD, the Node ID or Core Complex ID containing the Last Level
93 A core consists of 1 or more threads. It does not matter whether the threads
94 are SMT- or CMT-type threads.
96 AMDs nomenclature for a CMT core is "Compute Unit". The kernel always uses
97 "core".
99 Core-related topology information in the kernel:
101 - smp_num_siblings:
103 The number of threads in a core. The number of threads in a package can be
112 CPU.
114 AMDs nomenclature for CMT threads is "Compute Unit Core". The kernel always
117 Thread-related topology information in the kernel:
119 - topology_core_cpumask():
126 - topology_sibling_cpumask():
128 The cpumask contains all online threads in the core to which a thread
131 - topology_logical_package_id():
135 - topology_physical_package_id():
139 - topology_core_id();
141 The ID of the core to which a thread belongs. It is also printed in /proc/cpuinfo
150 The alternative Linux CPU enumeration depends on how the BIOS enumerates the
152 That has the "advantage" that the logical Linux CPU numbers of threads 0 stay
156 1) Single Package, Single Core::
158 [package 0] -> [core 0] -> [thread 0] -> Linux CPU 0
160 2) Single Package, Dual Core
162 a) One thread per core::
164 [package 0] -> [core 0] -> [thread 0] -> Linux CPU 0
165 -> [core 1] -> [thread 0] -> Linux CPU 1
167 b) Two threads per core::
169 [package 0] -> [core 0] -> [thread 0] -> Linux CPU 0
170 -> [thread 1] -> Linux CPU 1
171 -> [core 1] -> [thread 0] -> Linux CPU 2
172 -> [thread 1] -> Linux CPU 3
176 [package 0] -> [core 0] -> [thread 0] -> Linux CPU 0
177 -> [thread 1] -> Linux CPU 2
178 -> [core 1] -> [thread 0] -> Linux CPU 1
179 -> [thread 1] -> Linux CPU 3
183 [node 0] -> [Compute Unit 0] -> [Compute Unit Core 0] -> Linux CPU 0
184 -> [Compute Unit Core 1] -> Linux CPU 1
185 -> [Compute Unit 1] -> [Compute Unit Core 0] -> Linux CPU 2
186 -> [Compute Unit Core 1] -> Linux CPU 3
188 4) Dual Package, Dual Core
190 a) One thread per core::
192 [package 0] -> [core 0] -> [thread 0] -> Linux CPU 0
193 -> [core 1] -> [thread 0] -> Linux CPU 1
195 [package 1] -> [core 0] -> [thread 0] -> Linux CPU 2
196 -> [core 1] -> [thread 0] -> Linux CPU 3
198 b) Two threads per core::
200 [package 0] -> [core 0] -> [thread 0] -> Linux CPU 0
201 -> [thread 1] -> Linux CPU 1
202 -> [core 1] -> [thread 0] -> Linux CPU 2
203 -> [thread 1] -> Linux CPU 3
205 [package 1] -> [core 0] -> [thread 0] -> Linux CPU 4
206 -> [thread 1] -> Linux CPU 5
207 -> [core 1] -> [thread 0] -> Linux CPU 6
208 -> [thread 1] -> Linux CPU 7
212 [package 0] -> [core 0] -> [thread 0] -> Linux CPU 0
213 -> [thread 1] -> Linux CPU 4
214 -> [core 1] -> [thread 0] -> Linux CPU 1
215 -> [thread 1] -> Linux CPU 5
217 [package 1] -> [core 0] -> [thread 0] -> Linux CPU 2
218 -> [thread 1] -> Linux CPU 6
219 -> [core 1] -> [thread 0] -> Linux CPU 3
220 -> [thread 1] -> Linux CPU 7
224 [node 0] -> [Compute Unit 0] -> [Compute Unit Core 0] -> Linux CPU 0
225 -> [Compute Unit Core 1] -> Linux CPU 1
226 -> [Compute Unit 1] -> [Compute Unit Core 0] -> Linux CPU 2
227 -> [Compute Unit Core 1] -> Linux CPU 3
229 [node 1] -> [Compute Unit 0] -> [Compute Unit Core 0] -> Linux CPU 4
230 -> [Compute Unit Core 1] -> Linux CPU 5
231 -> [Compute Unit 1] -> [Compute Unit Core 0] -> Linux CPU 6
232 -> [Compute Unit Core 1] -> Linux CPU 7