About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog

Documentation / cputopology.txt

Based on kernel version 2.6.25. Page generated on 2008-04-18 21:22 EST.

1	
2	Export cpu topology info via sysfs. Items (attributes) are similar
3	to /proc/cpuinfo.
4	
5	1) /sys/devices/system/cpu/cpuX/topology/physical_package_id:
6	represent the physical package id of  cpu X;
7	2) /sys/devices/system/cpu/cpuX/topology/core_id:
8	represent the cpu core id to cpu X;
9	3) /sys/devices/system/cpu/cpuX/topology/thread_siblings:
10	represent the thread siblings to cpu X in the same core;
11	4) /sys/devices/system/cpu/cpuX/topology/core_siblings:
12	represent the thread siblings to cpu X in the same physical package;
13	
14	To implement it in an architecture-neutral way, a new source file,
15	drivers/base/topology.c, is to export the 4 attributes.
16	
17	If one architecture wants to support this feature, it just needs to
18	implement 4 defines, typically in file include/asm-XXX/topology.h.
19	The 4 defines are:
20	#define topology_physical_package_id(cpu)
21	#define topology_core_id(cpu)
22	#define topology_thread_siblings(cpu)
23	#define topology_core_siblings(cpu)
24	
25	The type of **_id is int.
26	The type of siblings is cpumask_t.
27	
28	To be consistent on all architectures, the 4 attributes should have
29	default values if their values are unavailable. Below is the rule.
30	1) physical_package_id: If cpu has no physical package id, -1 is the
31	default value.
32	2) core_id: If cpu doesn't support multi-core, its core id is 0.
33	3) thread_siblings: Just include itself, if the cpu doesn't support
34	HT/multi-thread.
35	4) core_siblings: Just include itself, if the cpu doesn't support
36	multi-core and HT/Multi-thread.
37	
38	So be careful when declaring the 4 defines in include/asm-XXX/topology.h.
39	
40	If an attribute isn't defined on an architecture, it won't be exported.
Hide Line Numbers
About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog

Information is copyright its respective author. All material is available from the Linux Kernel Source distributed under a GPL License. This page is provided as a free service by mjmwired.net.