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.cpu_die_id:
62 - cpuinfo_x86.phys_proc_id:
70 - cpuinfo_x86.logical_proc_id:
77 - topology_max_packages():
82 - cpu_llc_id:
84 A per-CPU variable containing:
86 - On Intel, the first APIC ID of the list of CPUs sharing the Last Level
89 - On AMD, the Node ID or Core Complex ID containing the Last Level
95 A core consists of 1 or more threads. It does not matter whether the threads
96 are SMT- or CMT-type threads.
98 AMDs nomenclature for a CMT core is "Compute Unit". The kernel always uses
99 "core".
101 Core-related topology information in the kernel:
103 - smp_num_siblings:
105 The number of threads in a core. The number of threads in a package can be
114 CPU.
116 AMDs nomenclature for CMT threads is "Compute Unit Core". The kernel always
119 Thread-related topology information in the kernel:
121 - topology_core_cpumask():
128 - topology_sibling_cpumask():
130 The cpumask contains all online threads in the core to which a thread
133 - topology_logical_package_id():
137 - topology_physical_package_id():
141 - topology_core_id();
143 The ID of the core to which a thread belongs. It is also printed in /proc/cpuinfo
152 The alternative Linux CPU enumeration depends on how the BIOS enumerates the
154 That has the "advantage" that the logical Linux CPU numbers of threads 0 stay
158 1) Single Package, Single Core::
160 [package 0] -> [core 0] -> [thread 0] -> Linux CPU 0
162 2) Single Package, Dual Core
164 a) One thread per core::
166 [package 0] -> [core 0] -> [thread 0] -> Linux CPU 0
167 -> [core 1] -> [thread 0] -> Linux CPU 1
169 b) Two threads per core::
171 [package 0] -> [core 0] -> [thread 0] -> Linux CPU 0
172 -> [thread 1] -> Linux CPU 1
173 -> [core 1] -> [thread 0] -> Linux CPU 2
174 -> [thread 1] -> Linux CPU 3
178 [package 0] -> [core 0] -> [thread 0] -> Linux CPU 0
179 -> [thread 1] -> Linux CPU 2
180 -> [core 1] -> [thread 0] -> Linux CPU 1
181 -> [thread 1] -> Linux CPU 3
185 [node 0] -> [Compute Unit 0] -> [Compute Unit Core 0] -> Linux CPU 0
186 -> [Compute Unit Core 1] -> Linux CPU 1
187 -> [Compute Unit 1] -> [Compute Unit Core 0] -> Linux CPU 2
188 -> [Compute Unit Core 1] -> Linux CPU 3
190 4) Dual Package, Dual Core
192 a) One thread per core::
194 [package 0] -> [core 0] -> [thread 0] -> Linux CPU 0
195 -> [core 1] -> [thread 0] -> Linux CPU 1
197 [package 1] -> [core 0] -> [thread 0] -> Linux CPU 2
198 -> [core 1] -> [thread 0] -> Linux CPU 3
200 b) Two threads per core::
202 [package 0] -> [core 0] -> [thread 0] -> Linux CPU 0
203 -> [thread 1] -> Linux CPU 1
204 -> [core 1] -> [thread 0] -> Linux CPU 2
205 -> [thread 1] -> Linux CPU 3
207 [package 1] -> [core 0] -> [thread 0] -> Linux CPU 4
208 -> [thread 1] -> Linux CPU 5
209 -> [core 1] -> [thread 0] -> Linux CPU 6
210 -> [thread 1] -> Linux CPU 7
214 [package 0] -> [core 0] -> [thread 0] -> Linux CPU 0
215 -> [thread 1] -> Linux CPU 4
216 -> [core 1] -> [thread 0] -> Linux CPU 1
217 -> [thread 1] -> Linux CPU 5
219 [package 1] -> [core 0] -> [thread 0] -> Linux CPU 2
220 -> [thread 1] -> Linux CPU 6
221 -> [core 1] -> [thread 0] -> Linux CPU 3
222 -> [thread 1] -> Linux CPU 7
226 [node 0] -> [Compute Unit 0] -> [Compute Unit Core 0] -> Linux CPU 0
227 -> [Compute Unit Core 1] -> Linux CPU 1
228 -> [Compute Unit 1] -> [Compute Unit Core 0] -> Linux CPU 2
229 -> [Compute Unit Core 1] -> Linux CPU 3
231 [node 1] -> [Compute Unit 0] -> [Compute Unit Core 0] -> Linux CPU 4
232 -> [Compute Unit Core 1] -> Linux CPU 5
233 -> [Compute Unit 1] -> [Compute Unit Core 0] -> Linux CPU 6
234 -> [Compute Unit Core 1] -> Linux CPU 7