1 =========================================== 2 How CPU topology info is exported via sysfs 3 =========================================== 4 5 CPU topology info is exported via sysfs. Items 6 to /proc/cpuinfo output of some architectures. 7 /sys/devices/system/cpu/cpuX/topology/. Please 8 Documentation/ABI/stable/sysfs-devices-system- 9 10 Architecture-neutral, drivers/base/topology.c, 11 However the die, cluster, book, and drawer hie 12 only be created if an architecture provides th 13 below. 14 15 For an architecture to support this feature, i 16 these macros in include/asm-XXX/topology.h:: 17 18 #define topology_physical_package_id(c 19 #define topology_die_id(cpu) 20 #define topology_cluster_id(cpu) 21 #define topology_core_id(cpu) 22 #define topology_book_id(cpu) 23 #define topology_drawer_id(cpu) 24 #define topology_sibling_cpumask(cpu) 25 #define topology_core_cpumask(cpu) 26 #define topology_cluster_cpumask(cpu) 27 #define topology_die_cpumask(cpu) 28 #define topology_book_cpumask(cpu) 29 #define topology_drawer_cpumask(cpu) 30 31 The type of ``**_id macros`` is int. 32 The type of ``**_cpumask macros`` is ``(const) 33 correspond with appropriate ``**_siblings`` sy 34 topology_sibling_cpumask() which corresponds w 35 36 To be consistent on all architectures, include 37 provides default definitions for any of the ab 38 not defined by include/asm-XXX/topology.h: 39 40 1) topology_physical_package_id: -1 41 2) topology_die_id: -1 42 3) topology_cluster_id: -1 43 4) topology_core_id: 0 44 5) topology_book_id: -1 45 6) topology_drawer_id: -1 46 7) topology_sibling_cpumask: just the given CP 47 8) topology_core_cpumask: just the given CPU 48 9) topology_cluster_cpumask: just the given CP 49 10) topology_die_cpumask: just the given CPU 50 11) topology_book_cpumask: just the given CPU 51 12) topology_drawer_cpumask: just the given CP 52 53 Additionally, CPU topology information is prov 54 /sys/devices/system/cpu and includes these fil 55 source for the output is in brackets ("[]"). 56 57 =========== ============================== 58 kernel_max: the maximum CPU index allowed 59 [NR_CPUS-1] 60 61 offline: CPUs that are not online becau 62 HOTPLUGGED off or exceed the l 63 kernel configuration (kernel_m 64 [~cpu_online_mask + cpus >= NR 65 66 online: CPUs that are online and being 67 68 possible: CPUs that have been allocated 69 brought online if they are pre 70 71 present: CPUs that have been identified 72 system. [cpu_present_mask] 73 =========== ============================== 74 75 The format for the above output is compatible 76 [see <linux/cpumask.h>]. Some examples follow 77 78 In this example, there are 64 CPUs in the syst 79 the kernel max which is limited to 0..31 by th 80 being 32. Note also that CPUs 2 and 4-31 are 81 brought online as they are both present and po 82 83 kernel_max: 31 84 offline: 2,4-31,32-63 85 online: 0-1,3 86 possible: 0-31 87 present: 0-31 88 89 In this example, the NR_CPUS config option is 90 started with possible_cpus=144. There are 4 C 91 was manually taken offline (and is the only CP 92 online.):: 93 94 kernel_max: 127 95 offline: 2,4-127,128-143 96 online: 0-1,3 97 possible: 0-127 98 present: 0-3 99 100 See Documentation/core-api/cpu_hotplug.rst for 101 kernel start parameter as well as more informa
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.