1What:		/sys/devices/system/cpu/
2Date:		pre-git history
3Contact:	Linux kernel mailing list <linux-kernel@vger.kernel.org>
4Description:
5		A collection of both global and individual CPU attributes
6
7		Individual CPU attributes are contained in subdirectories
8		named by the kernel's logical CPU number, e.g.:
9
10		/sys/devices/system/cpu/cpu#/
11
12What:		/sys/devices/system/cpu/sched_mc_power_savings
13		/sys/devices/system/cpu/sched_smt_power_savings
14Date:		June 2006
15Contact:	Linux kernel mailing list <linux-kernel@vger.kernel.org>
16Description:	Discover and adjust the kernel's multi-core scheduler support.
17
18		Possible values are:
19
20		0 - No power saving load balance (default value)
21		1 - Fill one thread/core/package first for long running threads
22		2 - Also bias task wakeups to semi-idle cpu package for power
23		    savings
24
25		sched_mc_power_savings is dependent upon SCHED_MC, which is
26		itself architecture dependent.
27
28		sched_smt_power_savings is dependent upon SCHED_SMT, which
29		is itself architecture dependent.
30
31		The two files are independent of each other. It is possible
32		that one file may be present without the other.
33
34		Introduced by git commit 5c45bf27.
35
36
37What:		/sys/devices/system/cpu/kernel_max
38		/sys/devices/system/cpu/offline
39		/sys/devices/system/cpu/online
40		/sys/devices/system/cpu/possible
41		/sys/devices/system/cpu/present
42Date:		December 2008
43Contact:	Linux kernel mailing list <linux-kernel@vger.kernel.org>
44Description:	CPU topology files that describe kernel limits related to
45		hotplug. Briefly:
46
47		kernel_max: the maximum cpu index allowed by the kernel
48		configuration.
49
50		offline: cpus that are not online because they have been
51		HOTPLUGGED off or exceed the limit of cpus allowed by the
52		kernel configuration (kernel_max above).
53
54		online: cpus that are online and being scheduled.
55
56		possible: cpus that have been allocated resources and can be
57		brought online if they are present.
58
59		present: cpus that have been identified as being present in
60		the system.
61
62		See Documentation/cputopology.txt for more information.
63
64
65What:		/sys/devices/system/cpu/probe
66		/sys/devices/system/cpu/release
67Date:		November 2009
68Contact:	Linux kernel mailing list <linux-kernel@vger.kernel.org>
69Description:	Dynamic addition and removal of CPU's.  This is not hotplug
70		removal, this is meant complete removal/addition of the CPU
71		from the system.
72
73		probe: writes to this file will dynamically add a CPU to the
74		system.  Information written to the file to add CPU's is
75		architecture specific.
76
77		release: writes to this file dynamically remove a CPU from
78		the system.  Information writtento the file to remove CPU's
79		is architecture specific.
80
81What:		/sys/devices/system/cpu/cpu#/node
82Date:		October 2009
83Contact:	Linux memory management mailing list <linux-mm@kvack.org>
84Description:	Discover NUMA node a CPU belongs to
85
86		When CONFIG_NUMA is enabled, a symbolic link that points
87		to the corresponding NUMA node directory.
88
89		For example, the following symlink is created for cpu42
90		in NUMA node 2:
91
92		/sys/devices/system/cpu/cpu42/node2 -> ../../node/node2
93
94
95What:		/sys/devices/system/cpu/cpu#/node
96Date:		October 2009
97Contact:	Linux memory management mailing list <linux-mm@kvack.org>
98Description:	Discover NUMA node a CPU belongs to
99
100		When CONFIG_NUMA is enabled, a symbolic link that points
101		to the corresponding NUMA node directory.
102
103		For example, the following symlink is created for cpu42
104		in NUMA node 2:
105
106		/sys/devices/system/cpu/cpu42/node2 -> ../../node/node2
107
108
109What:		/sys/devices/system/cpu/cpu#/topology/core_id
110		/sys/devices/system/cpu/cpu#/topology/core_siblings
111		/sys/devices/system/cpu/cpu#/topology/core_siblings_list
112		/sys/devices/system/cpu/cpu#/topology/physical_package_id
113		/sys/devices/system/cpu/cpu#/topology/thread_siblings
114		/sys/devices/system/cpu/cpu#/topology/thread_siblings_list
115Date:		December 2008
116Contact:	Linux kernel mailing list <linux-kernel@vger.kernel.org>
117Description:	CPU topology files that describe a logical CPU's relationship
118		to other cores and threads in the same physical package.
119
120		One cpu# directory is created per logical CPU in the system,
121		e.g. /sys/devices/system/cpu/cpu42/.
122
123		Briefly, the files above are:
124
125		core_id: the CPU core ID of cpu#. Typically it is the
126		hardware platform's identifier (rather than the kernel's).
127		The actual value is architecture and platform dependent.
128
129		core_siblings: internal kernel map of cpu#'s hardware threads
130		within the same physical_package_id.
131
132		core_siblings_list: human-readable list of the logical CPU
133		numbers within the same physical_package_id as cpu#.
134
135		physical_package_id: physical package id of cpu#. Typically
136		corresponds to a physical socket number, but the actual value
137		is architecture and platform dependent.
138
139		thread_siblings: internel kernel map of cpu#'s hardware
140		threads within the same core as cpu#
141
142		thread_siblings_list: human-readable list of cpu#'s hardware
143		threads within the same core as cpu#
144
145		See Documentation/cputopology.txt for more information.
146
147
148What:		/sys/devices/system/cpu/cpuidle/current_driver
149		/sys/devices/system/cpu/cpuidle/current_governer_ro
150Date:		September 2007
151Contact:	Linux kernel mailing list <linux-kernel@vger.kernel.org>
152Description:	Discover cpuidle policy and mechanism
153
154		Various CPUs today support multiple idle levels that are
155		differentiated by varying exit latencies and power
156		consumption during idle.
157
158		Idle policy (governor) is differentiated from idle mechanism
159		(driver)
160
161		current_driver: displays current idle mechanism
162
163		current_governor_ro: displays current idle policy
164
165		See files in Documentation/cpuidle/ for more information.
166
167
168What:		/sys/devices/system/cpu/cpu#/cpufreq/*
169Date:		pre-git history
170Contact:	cpufreq@vger.kernel.org
171Description:	Discover and change clock speed of CPUs
172
173		Clock scaling allows you to change the clock speed of the
174		CPUs on the fly. This is a nice method to save battery
175		power, because the lower the clock speed, the less power
176		the CPU consumes.
177
178		There are many knobs to tweak in this directory.
179
180		See files in Documentation/cpu-freq/ for more information.
181
182		In particular, read Documentation/cpu-freq/user-guide.txt
183		to learn how to control the knobs.
184
185
186What:      /sys/devices/system/cpu/cpu*/cache/index*/cache_disable_X
187Date:      August 2008
188KernelVersion:	2.6.27
189Contact:	mark.langsdorf@amd.com
190Description:	These files exist in every cpu's cache index directories.
191		There are currently 2 cache_disable_# files in each
192		directory.  Reading from these files on a supported
193		processor will return that cache disable index value
194		for that processor and node.  Writing to one of these
195		files will cause the specificed cache index to be disabled.
196
197		Currently, only AMD Family 10h Processors support cache index
198		disable, and only for their L3 caches.  See the BIOS and
199		Kernel Developer's Guide at
200		http://support.amd.com/us/Embedded_TechDocs/31116-Public-GH-BKDG_3-28_5-28-09.pdf
201		for formatting information and other details on the
202		cache index disable.
203Users:    joachim.deguara@amd.com
204