xref: /linux/Documentation/ABI/testing/sysfs-devices-system-cpu (revision b6d8ef86cb7b8b6920b6815ebf1352757d3adb87)
12ceb3fb0SAlex ChiangWhat:		/sys/devices/system/cpu/
22ceb3fb0SAlex ChiangDate:		pre-git history
32ceb3fb0SAlex ChiangContact:	Linux kernel mailing list <linux-kernel@vger.kernel.org>
42ceb3fb0SAlex ChiangDescription:
52ceb3fb0SAlex Chiang		A collection of both global and individual CPU attributes
62ceb3fb0SAlex Chiang
72ceb3fb0SAlex Chiang		Individual CPU attributes are contained in subdirectories
82ceb3fb0SAlex Chiang		named by the kernel's logical CPU number, e.g.:
92ceb3fb0SAlex Chiang
102ceb3fb0SAlex Chiang		/sys/devices/system/cpu/cpu#/
112ceb3fb0SAlex Chiang
12d93fc863SAlex ChiangWhat:		/sys/devices/system/cpu/kernel_max
13d93fc863SAlex Chiang		/sys/devices/system/cpu/offline
14d93fc863SAlex Chiang		/sys/devices/system/cpu/online
15d93fc863SAlex Chiang		/sys/devices/system/cpu/possible
16d93fc863SAlex Chiang		/sys/devices/system/cpu/present
17d93fc863SAlex ChiangDate:		December 2008
18d93fc863SAlex ChiangContact:	Linux kernel mailing list <linux-kernel@vger.kernel.org>
19d93fc863SAlex ChiangDescription:	CPU topology files that describe kernel limits related to
20d93fc863SAlex Chiang		hotplug. Briefly:
21d93fc863SAlex Chiang
22d93fc863SAlex Chiang		kernel_max: the maximum cpu index allowed by the kernel
23d93fc863SAlex Chiang		configuration.
24d93fc863SAlex Chiang
25d93fc863SAlex Chiang		offline: cpus that are not online because they have been
26d93fc863SAlex Chiang		HOTPLUGGED off or exceed the limit of cpus allowed by the
27d93fc863SAlex Chiang		kernel configuration (kernel_max above).
28d93fc863SAlex Chiang
29d93fc863SAlex Chiang		online: cpus that are online and being scheduled.
30d93fc863SAlex Chiang
31d93fc863SAlex Chiang		possible: cpus that have been allocated resources and can be
32d93fc863SAlex Chiang		brought online if they are present.
33d93fc863SAlex Chiang
34d93fc863SAlex Chiang		present: cpus that have been identified as being present in
35d93fc863SAlex Chiang		the system.
36d93fc863SAlex Chiang
37d93fc863SAlex Chiang		See Documentation/cputopology.txt for more information.
38d93fc863SAlex Chiang
39d93fc863SAlex Chiang
4012633e80SNathan FontenotWhat:		/sys/devices/system/cpu/probe
4112633e80SNathan Fontenot		/sys/devices/system/cpu/release
4212633e80SNathan FontenotDate:		November 2009
4312633e80SNathan FontenotContact:	Linux kernel mailing list <linux-kernel@vger.kernel.org>
4412633e80SNathan FontenotDescription:	Dynamic addition and removal of CPU's.  This is not hotplug
4512633e80SNathan Fontenot		removal, this is meant complete removal/addition of the CPU
4612633e80SNathan Fontenot		from the system.
4712633e80SNathan Fontenot
4812633e80SNathan Fontenot		probe: writes to this file will dynamically add a CPU to the
4912633e80SNathan Fontenot		system.  Information written to the file to add CPU's is
5012633e80SNathan Fontenot		architecture specific.
5112633e80SNathan Fontenot
5212633e80SNathan Fontenot		release: writes to this file dynamically remove a CPU from
5312633e80SNathan Fontenot		the system.  Information writtento the file to remove CPU's
5412633e80SNathan Fontenot		is architecture specific.
55657348a0SAlex Chiang
56657348a0SAlex ChiangWhat:		/sys/devices/system/cpu/cpu#/node
57657348a0SAlex ChiangDate:		October 2009
58657348a0SAlex ChiangContact:	Linux memory management mailing list <linux-mm@kvack.org>
59657348a0SAlex ChiangDescription:	Discover NUMA node a CPU belongs to
60657348a0SAlex Chiang
61657348a0SAlex Chiang		When CONFIG_NUMA is enabled, a symbolic link that points
62657348a0SAlex Chiang		to the corresponding NUMA node directory.
63657348a0SAlex Chiang
64657348a0SAlex Chiang		For example, the following symlink is created for cpu42
65657348a0SAlex Chiang		in NUMA node 2:
66657348a0SAlex Chiang
67657348a0SAlex Chiang		/sys/devices/system/cpu/cpu42/node2 -> ../../node/node2
68657348a0SAlex Chiang
69657348a0SAlex Chiang
70663fb2fcSAlex ChiangWhat:		/sys/devices/system/cpu/cpu#/topology/core_id
71663fb2fcSAlex Chiang		/sys/devices/system/cpu/cpu#/topology/core_siblings
72663fb2fcSAlex Chiang		/sys/devices/system/cpu/cpu#/topology/core_siblings_list
73663fb2fcSAlex Chiang		/sys/devices/system/cpu/cpu#/topology/physical_package_id
74663fb2fcSAlex Chiang		/sys/devices/system/cpu/cpu#/topology/thread_siblings
75663fb2fcSAlex Chiang		/sys/devices/system/cpu/cpu#/topology/thread_siblings_list
76663fb2fcSAlex ChiangDate:		December 2008
77663fb2fcSAlex ChiangContact:	Linux kernel mailing list <linux-kernel@vger.kernel.org>
78663fb2fcSAlex ChiangDescription:	CPU topology files that describe a logical CPU's relationship
79663fb2fcSAlex Chiang		to other cores and threads in the same physical package.
80663fb2fcSAlex Chiang
81663fb2fcSAlex Chiang		One cpu# directory is created per logical CPU in the system,
82663fb2fcSAlex Chiang		e.g. /sys/devices/system/cpu/cpu42/.
83663fb2fcSAlex Chiang
84663fb2fcSAlex Chiang		Briefly, the files above are:
85663fb2fcSAlex Chiang
86663fb2fcSAlex Chiang		core_id: the CPU core ID of cpu#. Typically it is the
87663fb2fcSAlex Chiang		hardware platform's identifier (rather than the kernel's).
88663fb2fcSAlex Chiang		The actual value is architecture and platform dependent.
89663fb2fcSAlex Chiang
90663fb2fcSAlex Chiang		core_siblings: internal kernel map of cpu#'s hardware threads
91663fb2fcSAlex Chiang		within the same physical_package_id.
92663fb2fcSAlex Chiang
93663fb2fcSAlex Chiang		core_siblings_list: human-readable list of the logical CPU
94663fb2fcSAlex Chiang		numbers within the same physical_package_id as cpu#.
95663fb2fcSAlex Chiang
96663fb2fcSAlex Chiang		physical_package_id: physical package id of cpu#. Typically
97663fb2fcSAlex Chiang		corresponds to a physical socket number, but the actual value
98663fb2fcSAlex Chiang		is architecture and platform dependent.
99663fb2fcSAlex Chiang
100663fb2fcSAlex Chiang		thread_siblings: internel kernel map of cpu#'s hardware
101663fb2fcSAlex Chiang		threads within the same core as cpu#
102663fb2fcSAlex Chiang
103663fb2fcSAlex Chiang		thread_siblings_list: human-readable list of cpu#'s hardware
104663fb2fcSAlex Chiang		threads within the same core as cpu#
105663fb2fcSAlex Chiang
106663fb2fcSAlex Chiang		See Documentation/cputopology.txt for more information.
107663fb2fcSAlex Chiang
108663fb2fcSAlex Chiang
109c1fb5c47SAlex ChiangWhat:		/sys/devices/system/cpu/cpuidle/current_driver
110c1fb5c47SAlex Chiang		/sys/devices/system/cpu/cpuidle/current_governer_ro
111*b6d8ef86SAishwarya Pant		/sys/devices/system/cpu/cpuidle/available_governors
112*b6d8ef86SAishwarya Pant		/sys/devices/system/cpu/cpuidle/current_governor
113c1fb5c47SAlex ChiangDate:		September 2007
114c1fb5c47SAlex ChiangContact:	Linux kernel mailing list <linux-kernel@vger.kernel.org>
115c1fb5c47SAlex ChiangDescription:	Discover cpuidle policy and mechanism
116c1fb5c47SAlex Chiang
117c1fb5c47SAlex Chiang		Various CPUs today support multiple idle levels that are
118c1fb5c47SAlex Chiang		differentiated by varying exit latencies and power
119c1fb5c47SAlex Chiang		consumption during idle.
120c1fb5c47SAlex Chiang
121c1fb5c47SAlex Chiang		Idle policy (governor) is differentiated from idle mechanism
122c1fb5c47SAlex Chiang		(driver)
123c1fb5c47SAlex Chiang
124*b6d8ef86SAishwarya Pant		current_driver: (RO) displays current idle mechanism
125c1fb5c47SAlex Chiang
126*b6d8ef86SAishwarya Pant		current_governor_ro: (RO) displays current idle policy
127*b6d8ef86SAishwarya Pant
128*b6d8ef86SAishwarya Pant		With the cpuidle_sysfs_switch boot option enabled (meant for
129*b6d8ef86SAishwarya Pant		developer testing), the following three attributes are visible
130*b6d8ef86SAishwarya Pant		instead:
131*b6d8ef86SAishwarya Pant
132*b6d8ef86SAishwarya Pant		current_driver: same as described above
133*b6d8ef86SAishwarya Pant
134*b6d8ef86SAishwarya Pant		available_governors: (RO) displays a space separated list of
135*b6d8ef86SAishwarya Pant		available governors
136*b6d8ef86SAishwarya Pant
137*b6d8ef86SAishwarya Pant		current_governor: (RW) displays current idle policy. Users can
138*b6d8ef86SAishwarya Pant		switch the governor at runtime by writing to this file.
139c1fb5c47SAlex Chiang
140c1fb5c47SAlex Chiang		See files in Documentation/cpuidle/ for more information.
141c1fb5c47SAlex Chiang
142c1fb5c47SAlex Chiang
143*b6d8ef86SAishwarya PantWhat:		/sys/devices/system/cpu/cpuX/cpuidle/stateN/name
144*b6d8ef86SAishwarya Pant		/sys/devices/system/cpu/cpuX/cpuidle/stateN/latency
145*b6d8ef86SAishwarya Pant		/sys/devices/system/cpu/cpuX/cpuidle/stateN/power
146*b6d8ef86SAishwarya Pant		/sys/devices/system/cpu/cpuX/cpuidle/stateN/time
147*b6d8ef86SAishwarya Pant		/sys/devices/system/cpu/cpuX/cpuidle/stateN/usage
148*b6d8ef86SAishwarya PantDate:		September 2007
149*b6d8ef86SAishwarya PantKernelVersion:	v2.6.24
150*b6d8ef86SAishwarya PantContact:	Linux power management list <linux-pm@vger.kernel.org>
151*b6d8ef86SAishwarya PantDescription:
152*b6d8ef86SAishwarya Pant		The directory /sys/devices/system/cpu/cpuX/cpuidle contains per
153*b6d8ef86SAishwarya Pant		logical CPU specific cpuidle information for each online cpu X.
154*b6d8ef86SAishwarya Pant		The processor idle states which are available for use have the
155*b6d8ef86SAishwarya Pant		following attributes:
156*b6d8ef86SAishwarya Pant
157*b6d8ef86SAishwarya Pant		name: (RO) Name of the idle state (string).
158*b6d8ef86SAishwarya Pant
159*b6d8ef86SAishwarya Pant		latency: (RO) The latency to exit out of this idle state (in
160*b6d8ef86SAishwarya Pant		microseconds).
161*b6d8ef86SAishwarya Pant
162*b6d8ef86SAishwarya Pant		power: (RO) The power consumed while in this idle state (in
163*b6d8ef86SAishwarya Pant		milliwatts).
164*b6d8ef86SAishwarya Pant
165*b6d8ef86SAishwarya Pant		time: (RO) The total time spent in this idle state (in microseconds).
166*b6d8ef86SAishwarya Pant
167*b6d8ef86SAishwarya Pant		usage: (RO) Number of times this state was entered (a count).
168*b6d8ef86SAishwarya Pant
169*b6d8ef86SAishwarya Pant
170*b6d8ef86SAishwarya PantWhat:		/sys/devices/system/cpu/cpuX/cpuidle/stateN/desc
171*b6d8ef86SAishwarya PantDate:		February 2008
172*b6d8ef86SAishwarya PantKernelVersion:	v2.6.25
173*b6d8ef86SAishwarya PantContact:	Linux power management list <linux-pm@vger.kernel.org>
174*b6d8ef86SAishwarya PantDescription:
175*b6d8ef86SAishwarya Pant		(RO) A small description about the idle state (string).
176*b6d8ef86SAishwarya Pant
177*b6d8ef86SAishwarya Pant
178*b6d8ef86SAishwarya PantWhat:		/sys/devices/system/cpu/cpuX/cpuidle/stateN/disable
179*b6d8ef86SAishwarya PantDate:		March 2012
180*b6d8ef86SAishwarya PantKernelVersion:	v3.10
181*b6d8ef86SAishwarya PantContact:	Linux power management list <linux-pm@vger.kernel.org>
182*b6d8ef86SAishwarya PantDescription:
183*b6d8ef86SAishwarya Pant		(RW) Option to disable this idle state (bool). The behavior and
184*b6d8ef86SAishwarya Pant		the effect of the disable variable depends on the implementation
185*b6d8ef86SAishwarya Pant		of a particular governor. In the ladder governor, for example,
186*b6d8ef86SAishwarya Pant		it is not coherent, i.e. if one is disabling a light state, then
187*b6d8ef86SAishwarya Pant		all deeper states are disabled as well, but the disable variable
188*b6d8ef86SAishwarya Pant		does not reflect it. Likewise, if one enables a deep state but a
189*b6d8ef86SAishwarya Pant		lighter state still is disabled, then this has no effect.
190*b6d8ef86SAishwarya Pant
191*b6d8ef86SAishwarya Pant
192*b6d8ef86SAishwarya PantWhat:		/sys/devices/system/cpu/cpuX/cpuidle/stateN/residency
193*b6d8ef86SAishwarya PantDate:		March 2014
194*b6d8ef86SAishwarya PantKernelVersion:	v3.15
195*b6d8ef86SAishwarya PantContact:	Linux power management list <linux-pm@vger.kernel.org>
196*b6d8ef86SAishwarya PantDescription:
197*b6d8ef86SAishwarya Pant		(RO) Display the target residency i.e. the minimum amount of
198*b6d8ef86SAishwarya Pant		time (in microseconds) this cpu should spend in this idle state
199*b6d8ef86SAishwarya Pant		to make the transition worth the effort.
200*b6d8ef86SAishwarya Pant
201*b6d8ef86SAishwarya Pant
2020cda8b91SAlex ChiangWhat:		/sys/devices/system/cpu/cpu#/cpufreq/*
2030cda8b91SAlex ChiangDate:		pre-git history
204dec102aaSViresh KumarContact:	linux-pm@vger.kernel.org
2050cda8b91SAlex ChiangDescription:	Discover and change clock speed of CPUs
2060cda8b91SAlex Chiang
2070cda8b91SAlex Chiang		Clock scaling allows you to change the clock speed of the
2080cda8b91SAlex Chiang		CPUs on the fly. This is a nice method to save battery
2090cda8b91SAlex Chiang		power, because the lower the clock speed, the less power
2100cda8b91SAlex Chiang		the CPU consumes.
2110cda8b91SAlex Chiang
2120cda8b91SAlex Chiang		There are many knobs to tweak in this directory.
2130cda8b91SAlex Chiang
2140cda8b91SAlex Chiang		See files in Documentation/cpu-freq/ for more information.
2150cda8b91SAlex Chiang
2160cda8b91SAlex Chiang		In particular, read Documentation/cpu-freq/user-guide.txt
2170cda8b91SAlex Chiang		to learn how to control the knobs.
2180cda8b91SAlex Chiang
2190cda8b91SAlex Chiang
220f4fd3797SLan TianyuWhat:		/sys/devices/system/cpu/cpu#/cpufreq/freqdomain_cpus
221f4fd3797SLan TianyuDate:		June 2013
222dec102aaSViresh KumarContact:	linux-pm@vger.kernel.org
223f4fd3797SLan TianyuDescription:	Discover CPUs in the same CPU frequency coordination domain
224f4fd3797SLan Tianyu
225f4fd3797SLan Tianyu		freqdomain_cpus is the list of CPUs (online+offline) that share
226f4fd3797SLan Tianyu		the same clock/freq domain (possibly at the hardware level).
227f4fd3797SLan Tianyu		That information may be hidden from the cpufreq core and the
228f4fd3797SLan Tianyu		value of related_cpus may be different from freqdomain_cpus. This
229f4fd3797SLan Tianyu		attribute is useful for user space DVFS controllers to get better
230f4fd3797SLan Tianyu		power/performance results for platforms using acpi-cpufreq.
231f4fd3797SLan Tianyu
232f4fd3797SLan Tianyu		This file is only present if the acpi-cpufreq driver is in use.
233f4fd3797SLan Tianyu
234f4fd3797SLan Tianyu
235eecaaba5SBorislav PetkovWhat:		/sys/devices/system/cpu/cpu*/cache/index3/cache_disable_{0,1}
236468727abSAlex ChiangDate:		August 2008
237468727abSAlex ChiangKernelVersion:	2.6.27
238ea8e080bSAravind GopalakrishnanContact:	Linux kernel mailing list <linux-kernel@vger.kernel.org>
239eecaaba5SBorislav PetkovDescription:	Disable L3 cache indices
240468727abSAlex Chiang
241eecaaba5SBorislav Petkov		These files exist in every CPU's cache/index3 directory. Each
242eecaaba5SBorislav Petkov		cache_disable_{0,1} file corresponds to one disable slot which
243eecaaba5SBorislav Petkov		can be used to disable a cache index. Reading from these files
244eecaaba5SBorislav Petkov		on a processor with this functionality will return the currently
245eecaaba5SBorislav Petkov		disabled index for that node. There is one L3 structure per
246eecaaba5SBorislav Petkov		node, or per internal node on MCM machines. Writing a valid
247eecaaba5SBorislav Petkov		index to one of these files will cause the specificed cache
248eecaaba5SBorislav Petkov		index to be disabled.
249eecaaba5SBorislav Petkov
250eecaaba5SBorislav Petkov		All AMD processors with L3 caches provide this functionality.
251eecaaba5SBorislav Petkov		For details, see BKDGs at
252eecaaba5SBorislav Petkov		http://developer.amd.com/documentation/guides/Pages/default.aspx
253615b7300SAndre Przywara
254615b7300SAndre Przywara
255615b7300SAndre PrzywaraWhat:		/sys/devices/system/cpu/cpufreq/boost
256615b7300SAndre PrzywaraDate:		August 2012
257615b7300SAndre PrzywaraContact:	Linux kernel mailing list <linux-kernel@vger.kernel.org>
258615b7300SAndre PrzywaraDescription:	Processor frequency boosting control
259615b7300SAndre Przywara
260615b7300SAndre Przywara		This switch controls the boost setting for the whole system.
261615b7300SAndre Przywara		Boosting allows the CPU and the firmware to run at a frequency
262615b7300SAndre Przywara		beyound it's nominal limit.
2633ba9b1b8STom Saeger		More details can be found in
2643ba9b1b8STom Saeger		Documentation/admin-guide/pm/cpufreq.rst
265c4fd675fSZhang Yanfei
266c4fd675fSZhang Yanfei
267c4fd675fSZhang YanfeiWhat:		/sys/devices/system/cpu/cpu#/crash_notes
268c4fd675fSZhang Yanfei		/sys/devices/system/cpu/cpu#/crash_notes_size
269c4fd675fSZhang YanfeiDate:		April 2013
270c4fd675fSZhang YanfeiContact:	kexec@lists.infradead.org
271c4fd675fSZhang YanfeiDescription:	address and size of the percpu note.
272c4fd675fSZhang Yanfei
273c4fd675fSZhang Yanfei		crash_notes: the physical address of the memory that holds the
274c4fd675fSZhang Yanfei		note of cpu#.
275c4fd675fSZhang Yanfei
276c4fd675fSZhang Yanfei		crash_notes_size: size of the note of cpu#.
277fbe299e0SRamkumar Ramachandra
278fbe299e0SRamkumar Ramachandra
279fbe299e0SRamkumar RamachandraWhat:		/sys/devices/system/cpu/intel_pstate/max_perf_pct
280fbe299e0SRamkumar Ramachandra		/sys/devices/system/cpu/intel_pstate/min_perf_pct
281fbe299e0SRamkumar Ramachandra		/sys/devices/system/cpu/intel_pstate/no_turbo
282fbe299e0SRamkumar RamachandraDate:		February 2013
283fbe299e0SRamkumar RamachandraContact:	linux-pm@vger.kernel.org
284fbe299e0SRamkumar RamachandraDescription:	Parameters for the Intel P-state driver
285fbe299e0SRamkumar Ramachandra
286fbe299e0SRamkumar Ramachandra		Logic for selecting the current P-state in Intel
287fbe299e0SRamkumar Ramachandra		Sandybridge+ processors. The three knobs control
288fbe299e0SRamkumar Ramachandra		limits for the P-state that will be requested by the
289fbe299e0SRamkumar Ramachandra		driver.
290fbe299e0SRamkumar Ramachandra
291fbe299e0SRamkumar Ramachandra		max_perf_pct: limits the maximum P state that will be requested by
292fbe299e0SRamkumar Ramachandra		the driver stated as a percentage of the available performance.
293fbe299e0SRamkumar Ramachandra
294fbe299e0SRamkumar Ramachandra		min_perf_pct: limits the minimum P state that will be requested by
295fbe299e0SRamkumar Ramachandra		the driver stated as a percentage of the available performance.
296fbe299e0SRamkumar Ramachandra
297fbe299e0SRamkumar Ramachandra		no_turbo: limits the driver to selecting P states below the turbo
298fbe299e0SRamkumar Ramachandra		frequency range.
299fbe299e0SRamkumar Ramachandra
3003ba9b1b8STom Saeger		More details can be found in
3013ba9b1b8STom Saeger		Documentation/admin-guide/pm/intel_pstate.rst
302246246cbSSudeep Holla
303246246cbSSudeep HollaWhat:		/sys/devices/system/cpu/cpu*/cache/index*/<set_of_attributes_mentioned_below>
304246246cbSSudeep HollaDate:		July 2014(documented, existed before August 2008)
305246246cbSSudeep HollaContact:	Sudeep Holla <sudeep.holla@arm.com>
306246246cbSSudeep Holla		Linux kernel mailing list <linux-kernel@vger.kernel.org>
307246246cbSSudeep HollaDescription:	Parameters for the CPU cache attributes
308246246cbSSudeep Holla
309246246cbSSudeep Holla		allocation_policy:
310246246cbSSudeep Holla			- WriteAllocate: allocate a memory location to a cache line
311246246cbSSudeep Holla					 on a cache miss because of a write
312246246cbSSudeep Holla			- ReadAllocate: allocate a memory location to a cache line
313246246cbSSudeep Holla					on a cache miss because of a read
314246246cbSSudeep Holla			- ReadWriteAllocate: both writeallocate and readallocate
315246246cbSSudeep Holla
316246246cbSSudeep Holla		attributes: LEGACY used only on IA64 and is same as write_policy
317246246cbSSudeep Holla
318246246cbSSudeep Holla		coherency_line_size: the minimum amount of data in bytes that gets
319246246cbSSudeep Holla				     transferred from memory to cache
320246246cbSSudeep Holla
3212539b258SWill Deacon		level: the cache hierarchy in the multi-level cache configuration
322246246cbSSudeep Holla
323246246cbSSudeep Holla		number_of_sets: total number of sets in the cache, a set is a
324246246cbSSudeep Holla				collection of cache lines with the same cache index
325246246cbSSudeep Holla
326246246cbSSudeep Holla		physical_line_partition: number of physical cache line per cache tag
327246246cbSSudeep Holla
328246246cbSSudeep Holla		shared_cpu_list: the list of logical cpus sharing the cache
329246246cbSSudeep Holla
330246246cbSSudeep Holla		shared_cpu_map: logical cpu mask containing the list of cpus sharing
331246246cbSSudeep Holla				the cache
332246246cbSSudeep Holla
333246246cbSSudeep Holla		size: the total cache size in kB
334246246cbSSudeep Holla
335246246cbSSudeep Holla		type:
336246246cbSSudeep Holla			- Instruction: cache that only holds instructions
337246246cbSSudeep Holla			- Data: cache that only caches data
338246246cbSSudeep Holla			- Unified: cache that holds both data and instructions
339246246cbSSudeep Holla
340246246cbSSudeep Holla		ways_of_associativity: degree of freedom in placing a particular block
341246246cbSSudeep Holla					of memory in the cache
342246246cbSSudeep Holla
343246246cbSSudeep Holla		write_policy:
344246246cbSSudeep Holla			- WriteThrough: data is written to both the cache line
345246246cbSSudeep Holla					and to the block in the lower-level memory
346246246cbSSudeep Holla			- WriteBack: data is written only to the cache line and
347246246cbSSudeep Holla				     the modified cache line is written to main
348246246cbSSudeep Holla				     memory only when it is replaced
3491b028984SShilpasri G Bhat
3501d78dc59STony Luck
3511d78dc59STony LuckWhat:		/sys/devices/system/cpu/cpu*/cache/index*/id
3521d78dc59STony LuckDate:		September 2016
3531d78dc59STony LuckContact:	Linux kernel mailing list <linux-kernel@vger.kernel.org>
3541d78dc59STony LuckDescription:	Cache id
3551d78dc59STony Luck
3561d78dc59STony Luck		The id provides a unique number for a specific instance of
3571d78dc59STony Luck		a cache of a particular type. E.g. there may be a level
3581d78dc59STony Luck		3 unified cache on each socket in a server and we may
3591d78dc59STony Luck		assign them ids 0, 1, 2, ...
3601d78dc59STony Luck
3611d78dc59STony Luck		Note that id value can be non-contiguous. E.g. level 1
3621d78dc59STony Luck		caches typically exist per core, but there may not be a
3631d78dc59STony Luck		power of two cores on a socket, so these caches may be
3641d78dc59STony Luck		numbered 0, 1, 2, 3, 4, 5, 8, 9, 10, ...
3651d78dc59STony Luck
3661b028984SShilpasri G BhatWhat:		/sys/devices/system/cpu/cpuX/cpufreq/throttle_stats
3671b028984SShilpasri G Bhat		/sys/devices/system/cpu/cpuX/cpufreq/throttle_stats/turbo_stat
3681b028984SShilpasri G Bhat		/sys/devices/system/cpu/cpuX/cpufreq/throttle_stats/sub_turbo_stat
3691b028984SShilpasri G Bhat		/sys/devices/system/cpu/cpuX/cpufreq/throttle_stats/unthrottle
3701b028984SShilpasri G Bhat		/sys/devices/system/cpu/cpuX/cpufreq/throttle_stats/powercap
3711b028984SShilpasri G Bhat		/sys/devices/system/cpu/cpuX/cpufreq/throttle_stats/overtemp
3721b028984SShilpasri G Bhat		/sys/devices/system/cpu/cpuX/cpufreq/throttle_stats/supply_fault
3731b028984SShilpasri G Bhat		/sys/devices/system/cpu/cpuX/cpufreq/throttle_stats/overcurrent
3741b028984SShilpasri G Bhat		/sys/devices/system/cpu/cpuX/cpufreq/throttle_stats/occ_reset
3751b028984SShilpasri G BhatDate:		March 2016
3761b028984SShilpasri G BhatContact:	Linux kernel mailing list <linux-kernel@vger.kernel.org>
3771b028984SShilpasri G Bhat		Linux for PowerPC mailing list <linuxppc-dev@ozlabs.org>
3781b028984SShilpasri G BhatDescription:	POWERNV CPUFreq driver's frequency throttle stats directory and
3791b028984SShilpasri G Bhat		attributes
3801b028984SShilpasri G Bhat
3811b028984SShilpasri G Bhat		'cpuX/cpufreq/throttle_stats' directory contains the CPU frequency
3821b028984SShilpasri G Bhat		throttle stat attributes for the chip. The throttle stats of a cpu
3831b028984SShilpasri G Bhat		is common across all the cpus belonging to a chip. Below are the
3841b028984SShilpasri G Bhat		throttle attributes exported in the 'throttle_stats' directory:
3851b028984SShilpasri G Bhat
3861b028984SShilpasri G Bhat		- turbo_stat : This file gives the total number of times the max
3871b028984SShilpasri G Bhat		frequency is throttled to lower frequency in turbo (at and above
3881b028984SShilpasri G Bhat		nominal frequency) range of frequencies.
3891b028984SShilpasri G Bhat
3901b028984SShilpasri G Bhat		- sub_turbo_stat : This file gives the total number of times the
3911b028984SShilpasri G Bhat		max frequency is throttled to lower frequency in sub-turbo(below
3921b028984SShilpasri G Bhat		nominal frequency) range of frequencies.
3931b028984SShilpasri G Bhat
3941b028984SShilpasri G Bhat		- unthrottle : This file gives the total number of times the max
3951b028984SShilpasri G Bhat		frequency is unthrottled after being throttled.
3961b028984SShilpasri G Bhat
3971b028984SShilpasri G Bhat		- powercap : This file gives the total number of times the max
3981b028984SShilpasri G Bhat		frequency is throttled due to 'Power Capping'.
3991b028984SShilpasri G Bhat
4001b028984SShilpasri G Bhat		- overtemp : This file gives the total number of times the max
4011b028984SShilpasri G Bhat		frequency is throttled due to 'CPU Over Temperature'.
4021b028984SShilpasri G Bhat
4031b028984SShilpasri G Bhat		- supply_fault : This file gives the total number of times the
4041b028984SShilpasri G Bhat		max frequency is throttled due to 'Power Supply Failure'.
4051b028984SShilpasri G Bhat
4061b028984SShilpasri G Bhat		- overcurrent : This file gives the total number of times the
4071b028984SShilpasri G Bhat		max frequency is throttled due to 'Overcurrent'.
4081b028984SShilpasri G Bhat
4091b028984SShilpasri G Bhat		- occ_reset : This file gives the total number of times the max
4101b028984SShilpasri G Bhat		frequency is throttled due to 'OCC Reset'.
4111b028984SShilpasri G Bhat
4121b028984SShilpasri G Bhat		The sysfs attributes representing different throttle reasons like
4131b028984SShilpasri G Bhat		powercap, overtemp, supply_fault, overcurrent and occ_reset map to
4141b028984SShilpasri G Bhat		the reasons provided by OCC firmware for throttling the frequency.
4151b028984SShilpasri G Bhat
4161b028984SShilpasri G BhatWhat:		/sys/devices/system/cpu/cpufreq/policyX/throttle_stats
4171b028984SShilpasri G Bhat		/sys/devices/system/cpu/cpufreq/policyX/throttle_stats/turbo_stat
4181b028984SShilpasri G Bhat		/sys/devices/system/cpu/cpufreq/policyX/throttle_stats/sub_turbo_stat
4191b028984SShilpasri G Bhat		/sys/devices/system/cpu/cpufreq/policyX/throttle_stats/unthrottle
4201b028984SShilpasri G Bhat		/sys/devices/system/cpu/cpufreq/policyX/throttle_stats/powercap
4211b028984SShilpasri G Bhat		/sys/devices/system/cpu/cpufreq/policyX/throttle_stats/overtemp
4221b028984SShilpasri G Bhat		/sys/devices/system/cpu/cpufreq/policyX/throttle_stats/supply_fault
4231b028984SShilpasri G Bhat		/sys/devices/system/cpu/cpufreq/policyX/throttle_stats/overcurrent
4241b028984SShilpasri G Bhat		/sys/devices/system/cpu/cpufreq/policyX/throttle_stats/occ_reset
4251b028984SShilpasri G BhatDate:		March 2016
4261b028984SShilpasri G BhatContact:	Linux kernel mailing list <linux-kernel@vger.kernel.org>
4271b028984SShilpasri G Bhat		Linux for PowerPC mailing list <linuxppc-dev@ozlabs.org>
4281b028984SShilpasri G BhatDescription:	POWERNV CPUFreq driver's frequency throttle stats directory and
4291b028984SShilpasri G Bhat		attributes
4301b028984SShilpasri G Bhat
4311b028984SShilpasri G Bhat		'policyX/throttle_stats' directory and all the attributes are same as
4321b028984SShilpasri G Bhat		the /sys/devices/system/cpu/cpuX/cpufreq/throttle_stats directory and
4331b028984SShilpasri G Bhat		attributes which give the frequency throttle information of the chip.
434f8d9f924SSteve Capper
435f8d9f924SSteve CapperWhat:		/sys/devices/system/cpu/cpuX/regs/
436f8d9f924SSteve Capper		/sys/devices/system/cpu/cpuX/regs/identification/
437f8d9f924SSteve Capper		/sys/devices/system/cpu/cpuX/regs/identification/midr_el1
438f8d9f924SSteve Capper		/sys/devices/system/cpu/cpuX/regs/identification/revidr_el1
439f8d9f924SSteve CapperDate:		June 2016
440f8d9f924SSteve CapperContact:	Linux ARM Kernel Mailing list <linux-arm-kernel@lists.infradead.org>
441f8d9f924SSteve CapperDescription:	AArch64 CPU registers
442f8d9f924SSteve Capper		'identification' directory exposes the CPU ID registers for
443f8d9f924SSteve Capper		 identifying model and revision of the CPU.
444a2b60670SJuri Lelli
445a2b60670SJuri LelliWhat:		/sys/devices/system/cpu/cpu#/cpu_capacity
446a2b60670SJuri LelliDate:		December 2016
447a2b60670SJuri LelliContact:	Linux kernel mailing list <linux-kernel@vger.kernel.org>
448a2b60670SJuri LelliDescription:	information about CPUs heterogeneity.
449a2b60670SJuri Lelli
450a2b60670SJuri Lelli		cpu_capacity: capacity of cpu#.
45187590ce6SThomas Gleixner
45287590ce6SThomas GleixnerWhat:		/sys/devices/system/cpu/vulnerabilities
45387590ce6SThomas Gleixner		/sys/devices/system/cpu/vulnerabilities/meltdown
45487590ce6SThomas Gleixner		/sys/devices/system/cpu/vulnerabilities/spectre_v1
45587590ce6SThomas Gleixner		/sys/devices/system/cpu/vulnerabilities/spectre_v2
4569ecccfaaSDavid WoodhouseDate:		January 2018
45787590ce6SThomas GleixnerContact:	Linux kernel mailing list <linux-kernel@vger.kernel.org>
45887590ce6SThomas GleixnerDescription:	Information about CPU vulnerabilities
45987590ce6SThomas Gleixner
46087590ce6SThomas Gleixner		The files are named after the code names of CPU
46187590ce6SThomas Gleixner		vulnerabilities. The output of those files reflects the
46287590ce6SThomas Gleixner		state of the CPUs in the system. Possible output values:
46387590ce6SThomas Gleixner
46487590ce6SThomas Gleixner		"Not affected"	  CPU is not affected by the vulnerability
46587590ce6SThomas Gleixner		"Vulnerable"	  CPU is affected and no mitigation in effect
4669ecccfaaSDavid Woodhouse		"Mitigation: $M"  CPU is affected and mitigation $M is in effect
467