Loading...
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/index3/cache_disable_{0,1}
187Date: August 2008
188KernelVersion: 2.6.27
189Contact: discuss@x86-64.org
190Description: Disable L3 cache indices
191
192 These files exist in every CPU's cache/index3 directory. Each
193 cache_disable_{0,1} file corresponds to one disable slot which
194 can be used to disable a cache index. Reading from these files
195 on a processor with this functionality will return the currently
196 disabled index for that node. There is one L3 structure per
197 node, or per internal node on MCM machines. Writing a valid
198 index to one of these files will cause the specificed cache
199 index to be disabled.
200
201 All AMD processors with L3 caches provide this functionality.
202 For details, see BKDGs at
203 http://developer.amd.com/documentation/guides/Pages/default.aspx
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/kernel_max
13 /sys/devices/system/cpu/offline
14 /sys/devices/system/cpu/online
15 /sys/devices/system/cpu/possible
16 /sys/devices/system/cpu/present
17Date: December 2008
18Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org>
19Description: CPU topology files that describe kernel limits related to
20 hotplug. Briefly:
21
22 kernel_max: the maximum cpu index allowed by the kernel
23 configuration.
24
25 offline: cpus that are not online because they have been
26 HOTPLUGGED off or exceed the limit of cpus allowed by the
27 kernel configuration (kernel_max above).
28
29 online: cpus that are online and being scheduled.
30
31 possible: cpus that have been allocated resources and can be
32 brought online if they are present.
33
34 present: cpus that have been identified as being present in
35 the system.
36
37 See Documentation/admin-guide/cputopology.rst for more information.
38
39
40What: /sys/devices/system/cpu/probe
41 /sys/devices/system/cpu/release
42Date: November 2009
43Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org>
44Description: Dynamic addition and removal of CPU's. This is not hotplug
45 removal, this is meant complete removal/addition of the CPU
46 from the system.
47
48 probe: writes to this file will dynamically add a CPU to the
49 system. Information written to the file to add CPU's is
50 architecture specific.
51
52 release: writes to this file dynamically remove a CPU from
53 the system. Information writtento the file to remove CPU's
54 is architecture specific.
55
56What: /sys/devices/system/cpu/cpu#/node
57Date: October 2009
58Contact: Linux memory management mailing list <linux-mm@kvack.org>
59Description: Discover NUMA node a CPU belongs to
60
61 When CONFIG_NUMA is enabled, a symbolic link that points
62 to the corresponding NUMA node directory.
63
64 For example, the following symlink is created for cpu42
65 in NUMA node 2:
66
67 /sys/devices/system/cpu/cpu42/node2 -> ../../node/node2
68
69
70What: /sys/devices/system/cpu/cpu#/topology/core_id
71 /sys/devices/system/cpu/cpu#/topology/core_siblings
72 /sys/devices/system/cpu/cpu#/topology/core_siblings_list
73 /sys/devices/system/cpu/cpu#/topology/physical_package_id
74 /sys/devices/system/cpu/cpu#/topology/thread_siblings
75 /sys/devices/system/cpu/cpu#/topology/thread_siblings_list
76Date: December 2008
77Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org>
78Description: CPU topology files that describe a logical CPU's relationship
79 to other cores and threads in the same physical package.
80
81 One cpu# directory is created per logical CPU in the system,
82 e.g. /sys/devices/system/cpu/cpu42/.
83
84 Briefly, the files above are:
85
86 core_id: the CPU core ID of cpu#. Typically it is the
87 hardware platform's identifier (rather than the kernel's).
88 The actual value is architecture and platform dependent.
89
90 core_siblings: internal kernel map of cpu#'s hardware threads
91 within the same physical_package_id.
92
93 core_siblings_list: human-readable list of the logical CPU
94 numbers within the same physical_package_id as cpu#.
95
96 physical_package_id: physical package id of cpu#. Typically
97 corresponds to a physical socket number, but the actual value
98 is architecture and platform dependent.
99
100 thread_siblings: internel kernel map of cpu#'s hardware
101 threads within the same core as cpu#
102
103 thread_siblings_list: human-readable list of cpu#'s hardware
104 threads within the same core as cpu#
105
106 See Documentation/admin-guide/cputopology.rst for more information.
107
108
109What: /sys/devices/system/cpu/cpuidle/available_governors
110 /sys/devices/system/cpu/cpuidle/current_driver
111 /sys/devices/system/cpu/cpuidle/current_governor
112 /sys/devices/system/cpu/cpuidle/current_governer_ro
113Date: September 2007
114Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org>
115Description: Discover cpuidle policy and mechanism
116
117 Various CPUs today support multiple idle levels that are
118 differentiated by varying exit latencies and power
119 consumption during idle.
120
121 Idle policy (governor) is differentiated from idle mechanism
122 (driver).
123
124 available_governors: (RO) displays a space separated list of
125 available governors.
126
127 current_driver: (RO) displays current idle mechanism.
128
129 current_governor: (RW) displays current idle policy. Users can
130 switch the governor at runtime by writing to this file.
131
132 current_governor_ro: (RO) displays current idle policy.
133
134 See Documentation/admin-guide/pm/cpuidle.rst and
135 Documentation/driver-api/pm/cpuidle.rst for more information.
136
137
138What: /sys/devices/system/cpu/cpuX/cpuidle/stateN/name
139 /sys/devices/system/cpu/cpuX/cpuidle/stateN/latency
140 /sys/devices/system/cpu/cpuX/cpuidle/stateN/power
141 /sys/devices/system/cpu/cpuX/cpuidle/stateN/time
142 /sys/devices/system/cpu/cpuX/cpuidle/stateN/usage
143 /sys/devices/system/cpu/cpuX/cpuidle/stateN/above
144 /sys/devices/system/cpu/cpuX/cpuidle/stateN/below
145Date: September 2007
146KernelVersion: v2.6.24
147Contact: Linux power management list <linux-pm@vger.kernel.org>
148Description:
149 The directory /sys/devices/system/cpu/cpuX/cpuidle contains per
150 logical CPU specific cpuidle information for each online cpu X.
151 The processor idle states which are available for use have the
152 following attributes:
153
154 name: (RO) Name of the idle state (string).
155
156 latency: (RO) The latency to exit out of this idle state (in
157 microseconds).
158
159 power: (RO) The power consumed while in this idle state (in
160 milliwatts).
161
162 time: (RO) The total time spent in this idle state (in microseconds).
163
164 usage: (RO) Number of times this state was entered (a count).
165
166 above: (RO) Number of times this state was entered, but the
167 observed CPU idle duration was too short for it (a count).
168
169 below: (RO) Number of times this state was entered, but the
170 observed CPU idle duration was too long for it (a count).
171
172What: /sys/devices/system/cpu/cpuX/cpuidle/stateN/desc
173Date: February 2008
174KernelVersion: v2.6.25
175Contact: Linux power management list <linux-pm@vger.kernel.org>
176Description:
177 (RO) A small description about the idle state (string).
178
179
180What: /sys/devices/system/cpu/cpuX/cpuidle/stateN/disable
181Date: March 2012
182KernelVersion: v3.10
183Contact: Linux power management list <linux-pm@vger.kernel.org>
184Description:
185 (RW) Option to disable this idle state (bool). The behavior and
186 the effect of the disable variable depends on the implementation
187 of a particular governor. In the ladder governor, for example,
188 it is not coherent, i.e. if one is disabling a light state, then
189 all deeper states are disabled as well, but the disable variable
190 does not reflect it. Likewise, if one enables a deep state but a
191 lighter state still is disabled, then this has no effect.
192
193What: /sys/devices/system/cpu/cpuX/cpuidle/stateN/default_status
194Date: December 2019
195KernelVersion: v5.6
196Contact: Linux power management list <linux-pm@vger.kernel.org>
197Description:
198 (RO) The default status of this state, "enabled" or "disabled".
199
200What: /sys/devices/system/cpu/cpuX/cpuidle/stateN/residency
201Date: March 2014
202KernelVersion: v3.15
203Contact: Linux power management list <linux-pm@vger.kernel.org>
204Description:
205 (RO) Display the target residency i.e. the minimum amount of
206 time (in microseconds) this cpu should spend in this idle state
207 to make the transition worth the effort.
208
209What: /sys/devices/system/cpu/cpuX/cpuidle/stateN/s2idle/
210Date: March 2018
211KernelVersion: v4.17
212Contact: Linux power management list <linux-pm@vger.kernel.org>
213Description:
214 Idle state usage statistics related to suspend-to-idle.
215
216 This attribute group is only present for states that can be
217 used in suspend-to-idle with suspended timekeeping.
218
219What: /sys/devices/system/cpu/cpuX/cpuidle/stateN/s2idle/time
220Date: March 2018
221KernelVersion: v4.17
222Contact: Linux power management list <linux-pm@vger.kernel.org>
223Description:
224 Total time spent by the CPU in suspend-to-idle (with scheduler
225 tick suspended) after requesting this state.
226
227What: /sys/devices/system/cpu/cpuX/cpuidle/stateN/s2idle/usage
228Date: March 2018
229KernelVersion: v4.17
230Contact: Linux power management list <linux-pm@vger.kernel.org>
231Description:
232 Total number of times this state has been requested by the CPU
233 while entering suspend-to-idle.
234
235What: /sys/devices/system/cpu/cpu#/cpufreq/*
236Date: pre-git history
237Contact: linux-pm@vger.kernel.org
238Description: Discover and change clock speed of CPUs
239
240 Clock scaling allows you to change the clock speed of the
241 CPUs on the fly. This is a nice method to save battery
242 power, because the lower the clock speed, the less power
243 the CPU consumes.
244
245 There are many knobs to tweak in this directory.
246
247 See files in Documentation/cpu-freq/ for more information.
248
249
250What: /sys/devices/system/cpu/cpu#/cpufreq/freqdomain_cpus
251Date: June 2013
252Contact: linux-pm@vger.kernel.org
253Description: Discover CPUs in the same CPU frequency coordination domain
254
255 freqdomain_cpus is the list of CPUs (online+offline) that share
256 the same clock/freq domain (possibly at the hardware level).
257 That information may be hidden from the cpufreq core and the
258 value of related_cpus may be different from freqdomain_cpus. This
259 attribute is useful for user space DVFS controllers to get better
260 power/performance results for platforms using acpi-cpufreq.
261
262 This file is only present if the acpi-cpufreq driver is in use.
263
264
265What: /sys/devices/system/cpu/cpu*/cache/index3/cache_disable_{0,1}
266Date: August 2008
267KernelVersion: 2.6.27
268Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org>
269Description: Disable L3 cache indices
270
271 These files exist in every CPU's cache/index3 directory. Each
272 cache_disable_{0,1} file corresponds to one disable slot which
273 can be used to disable a cache index. Reading from these files
274 on a processor with this functionality will return the currently
275 disabled index for that node. There is one L3 structure per
276 node, or per internal node on MCM machines. Writing a valid
277 index to one of these files will cause the specificed cache
278 index to be disabled.
279
280 All AMD processors with L3 caches provide this functionality.
281 For details, see BKDGs at
282 http://developer.amd.com/documentation/guides/Pages/default.aspx
283
284
285What: /sys/devices/system/cpu/cpufreq/boost
286Date: August 2012
287Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org>
288Description: Processor frequency boosting control
289
290 This switch controls the boost setting for the whole system.
291 Boosting allows the CPU and the firmware to run at a frequency
292 beyound it's nominal limit.
293 More details can be found in
294 Documentation/admin-guide/pm/cpufreq.rst
295
296
297What: /sys/devices/system/cpu/cpu#/crash_notes
298 /sys/devices/system/cpu/cpu#/crash_notes_size
299Date: April 2013
300Contact: kexec@lists.infradead.org
301Description: address and size of the percpu note.
302
303 crash_notes: the physical address of the memory that holds the
304 note of cpu#.
305
306 crash_notes_size: size of the note of cpu#.
307
308
309What: /sys/devices/system/cpu/intel_pstate/max_perf_pct
310 /sys/devices/system/cpu/intel_pstate/min_perf_pct
311 /sys/devices/system/cpu/intel_pstate/no_turbo
312Date: February 2013
313Contact: linux-pm@vger.kernel.org
314Description: Parameters for the Intel P-state driver
315
316 Logic for selecting the current P-state in Intel
317 Sandybridge+ processors. The three knobs control
318 limits for the P-state that will be requested by the
319 driver.
320
321 max_perf_pct: limits the maximum P state that will be requested by
322 the driver stated as a percentage of the available performance.
323
324 min_perf_pct: limits the minimum P state that will be requested by
325 the driver stated as a percentage of the available performance.
326
327 no_turbo: limits the driver to selecting P states below the turbo
328 frequency range.
329
330 More details can be found in
331 Documentation/admin-guide/pm/intel_pstate.rst
332
333What: /sys/devices/system/cpu/cpu*/cache/index*/<set_of_attributes_mentioned_below>
334Date: July 2014(documented, existed before August 2008)
335Contact: Sudeep Holla <sudeep.holla@arm.com>
336 Linux kernel mailing list <linux-kernel@vger.kernel.org>
337Description: Parameters for the CPU cache attributes
338
339 allocation_policy:
340 - WriteAllocate: allocate a memory location to a cache line
341 on a cache miss because of a write
342 - ReadAllocate: allocate a memory location to a cache line
343 on a cache miss because of a read
344 - ReadWriteAllocate: both writeallocate and readallocate
345
346 attributes: LEGACY used only on IA64 and is same as write_policy
347
348 coherency_line_size: the minimum amount of data in bytes that gets
349 transferred from memory to cache
350
351 level: the cache hierarchy in the multi-level cache configuration
352
353 number_of_sets: total number of sets in the cache, a set is a
354 collection of cache lines with the same cache index
355
356 physical_line_partition: number of physical cache line per cache tag
357
358 shared_cpu_list: the list of logical cpus sharing the cache
359
360 shared_cpu_map: logical cpu mask containing the list of cpus sharing
361 the cache
362
363 size: the total cache size in kB
364
365 type:
366 - Instruction: cache that only holds instructions
367 - Data: cache that only caches data
368 - Unified: cache that holds both data and instructions
369
370 ways_of_associativity: degree of freedom in placing a particular block
371 of memory in the cache
372
373 write_policy:
374 - WriteThrough: data is written to both the cache line
375 and to the block in the lower-level memory
376 - WriteBack: data is written only to the cache line and
377 the modified cache line is written to main
378 memory only when it is replaced
379
380
381What: /sys/devices/system/cpu/cpu*/cache/index*/id
382Date: September 2016
383Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org>
384Description: Cache id
385
386 The id provides a unique number for a specific instance of
387 a cache of a particular type. E.g. there may be a level
388 3 unified cache on each socket in a server and we may
389 assign them ids 0, 1, 2, ...
390
391 Note that id value can be non-contiguous. E.g. level 1
392 caches typically exist per core, but there may not be a
393 power of two cores on a socket, so these caches may be
394 numbered 0, 1, 2, 3, 4, 5, 8, 9, 10, ...
395
396What: /sys/devices/system/cpu/cpuX/cpufreq/throttle_stats
397 /sys/devices/system/cpu/cpuX/cpufreq/throttle_stats/turbo_stat
398 /sys/devices/system/cpu/cpuX/cpufreq/throttle_stats/sub_turbo_stat
399 /sys/devices/system/cpu/cpuX/cpufreq/throttle_stats/unthrottle
400 /sys/devices/system/cpu/cpuX/cpufreq/throttle_stats/powercap
401 /sys/devices/system/cpu/cpuX/cpufreq/throttle_stats/overtemp
402 /sys/devices/system/cpu/cpuX/cpufreq/throttle_stats/supply_fault
403 /sys/devices/system/cpu/cpuX/cpufreq/throttle_stats/overcurrent
404 /sys/devices/system/cpu/cpuX/cpufreq/throttle_stats/occ_reset
405Date: March 2016
406Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org>
407 Linux for PowerPC mailing list <linuxppc-dev@ozlabs.org>
408Description: POWERNV CPUFreq driver's frequency throttle stats directory and
409 attributes
410
411 'cpuX/cpufreq/throttle_stats' directory contains the CPU frequency
412 throttle stat attributes for the chip. The throttle stats of a cpu
413 is common across all the cpus belonging to a chip. Below are the
414 throttle attributes exported in the 'throttle_stats' directory:
415
416 - turbo_stat : This file gives the total number of times the max
417 frequency is throttled to lower frequency in turbo (at and above
418 nominal frequency) range of frequencies.
419
420 - sub_turbo_stat : This file gives the total number of times the
421 max frequency is throttled to lower frequency in sub-turbo(below
422 nominal frequency) range of frequencies.
423
424 - unthrottle : This file gives the total number of times the max
425 frequency is unthrottled after being throttled.
426
427 - powercap : This file gives the total number of times the max
428 frequency is throttled due to 'Power Capping'.
429
430 - overtemp : This file gives the total number of times the max
431 frequency is throttled due to 'CPU Over Temperature'.
432
433 - supply_fault : This file gives the total number of times the
434 max frequency is throttled due to 'Power Supply Failure'.
435
436 - overcurrent : This file gives the total number of times the
437 max frequency is throttled due to 'Overcurrent'.
438
439 - occ_reset : This file gives the total number of times the max
440 frequency is throttled due to 'OCC Reset'.
441
442 The sysfs attributes representing different throttle reasons like
443 powercap, overtemp, supply_fault, overcurrent and occ_reset map to
444 the reasons provided by OCC firmware for throttling the frequency.
445
446What: /sys/devices/system/cpu/cpufreq/policyX/throttle_stats
447 /sys/devices/system/cpu/cpufreq/policyX/throttle_stats/turbo_stat
448 /sys/devices/system/cpu/cpufreq/policyX/throttle_stats/sub_turbo_stat
449 /sys/devices/system/cpu/cpufreq/policyX/throttle_stats/unthrottle
450 /sys/devices/system/cpu/cpufreq/policyX/throttle_stats/powercap
451 /sys/devices/system/cpu/cpufreq/policyX/throttle_stats/overtemp
452 /sys/devices/system/cpu/cpufreq/policyX/throttle_stats/supply_fault
453 /sys/devices/system/cpu/cpufreq/policyX/throttle_stats/overcurrent
454 /sys/devices/system/cpu/cpufreq/policyX/throttle_stats/occ_reset
455Date: March 2016
456Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org>
457 Linux for PowerPC mailing list <linuxppc-dev@ozlabs.org>
458Description: POWERNV CPUFreq driver's frequency throttle stats directory and
459 attributes
460
461 'policyX/throttle_stats' directory and all the attributes are same as
462 the /sys/devices/system/cpu/cpuX/cpufreq/throttle_stats directory and
463 attributes which give the frequency throttle information of the chip.
464
465What: /sys/devices/system/cpu/cpuX/regs/
466 /sys/devices/system/cpu/cpuX/regs/identification/
467 /sys/devices/system/cpu/cpuX/regs/identification/midr_el1
468 /sys/devices/system/cpu/cpuX/regs/identification/revidr_el1
469Date: June 2016
470Contact: Linux ARM Kernel Mailing list <linux-arm-kernel@lists.infradead.org>
471Description: AArch64 CPU registers
472 'identification' directory exposes the CPU ID registers for
473 identifying model and revision of the CPU.
474
475What: /sys/devices/system/cpu/cpu#/cpu_capacity
476Date: December 2016
477Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org>
478Description: information about CPUs heterogeneity.
479
480 cpu_capacity: capacity of cpu#.
481
482What: /sys/devices/system/cpu/vulnerabilities
483 /sys/devices/system/cpu/vulnerabilities/meltdown
484 /sys/devices/system/cpu/vulnerabilities/spectre_v1
485 /sys/devices/system/cpu/vulnerabilities/spectre_v2
486 /sys/devices/system/cpu/vulnerabilities/spec_store_bypass
487 /sys/devices/system/cpu/vulnerabilities/l1tf
488 /sys/devices/system/cpu/vulnerabilities/mds
489 /sys/devices/system/cpu/vulnerabilities/srbds
490 /sys/devices/system/cpu/vulnerabilities/tsx_async_abort
491 /sys/devices/system/cpu/vulnerabilities/itlb_multihit
492Date: January 2018
493Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org>
494Description: Information about CPU vulnerabilities
495
496 The files are named after the code names of CPU
497 vulnerabilities. The output of those files reflects the
498 state of the CPUs in the system. Possible output values:
499
500 "Not affected" CPU is not affected by the vulnerability
501 "Vulnerable" CPU is affected and no mitigation in effect
502 "Mitigation: $M" CPU is affected and mitigation $M is in effect
503
504 See also: Documentation/admin-guide/hw-vuln/index.rst
505
506What: /sys/devices/system/cpu/smt
507 /sys/devices/system/cpu/smt/active
508 /sys/devices/system/cpu/smt/control
509Date: June 2018
510Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org>
511Description: Control Symetric Multi Threading (SMT)
512
513 active: Tells whether SMT is active (enabled and siblings online)
514
515 control: Read/write interface to control SMT. Possible
516 values:
517
518 "on" SMT is enabled
519 "off" SMT is disabled
520 "forceoff" SMT is force disabled. Cannot be changed.
521 "notsupported" SMT is not supported by the CPU
522 "notimplemented" SMT runtime toggling is not
523 implemented for the architecture
524
525 If control status is "forceoff" or "notsupported" writes
526 are rejected.
527
528What: /sys/devices/system/cpu/cpu#/power/energy_perf_bias
529Date: March 2019
530Contact: linux-pm@vger.kernel.org
531Description: Intel Energy and Performance Bias Hint (EPB)
532
533 EPB for the given CPU in a sliding scale 0 - 15, where a value
534 of 0 corresponds to a hint preference for highest performance
535 and a value of 15 corresponds to the maximum energy savings.
536
537 In order to change the EPB value for the CPU, write either
538 a number in the 0 - 15 sliding scale above, or one of the
539 strings: "performance", "balance-performance", "normal",
540 "balance-power", "power" (that represent values reflected by
541 their meaning), to this attribute.
542
543 This attribute is present for all online CPUs supporting the
544 Intel EPB feature.
545
546What: /sys/devices/system/cpu/umwait_control
547 /sys/devices/system/cpu/umwait_control/enable_c02
548 /sys/devices/system/cpu/umwait_control/max_time
549Date: May 2019
550Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org>
551Description: Umwait control
552
553 enable_c02: Read/write interface to control umwait C0.2 state
554 Read returns C0.2 state status:
555 0: C0.2 is disabled
556 1: C0.2 is enabled
557
558 Write 'y' or '1' or 'on' to enable C0.2 state.
559 Write 'n' or '0' or 'off' to disable C0.2 state.
560
561 The interface is case insensitive.
562
563 max_time: Read/write interface to control umwait maximum time
564 in TSC-quanta that the CPU can reside in either C0.1
565 or C0.2 state. The time is an unsigned 32-bit number.
566 Note that a value of zero means there is no limit.
567 Low order two bits must be zero.
568
569What: /sys/devices/system/cpu/svm
570Date: August 2019
571Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org>
572 Linux for PowerPC mailing list <linuxppc-dev@ozlabs.org>
573Description: Secure Virtual Machine
574
575 If 1, it means the system is using the Protected Execution
576 Facility in POWER9 and newer processors. i.e., it is a Secure
577 Virtual Machine.
578
579What: /sys/devices/system/cpu/cpuX/purr
580Date: Apr 2005
581Contact: Linux for PowerPC mailing list <linuxppc-dev@ozlabs.org>
582Description: PURR ticks for this CPU since the system boot.
583
584 The Processor Utilization Resources Register (PURR) is
585 a 64-bit counter which provides an estimate of the
586 resources used by the CPU thread. The contents of this
587 register increases monotonically. This sysfs interface
588 exposes the number of PURR ticks for cpuX.
589
590What: /sys/devices/system/cpu/cpuX/spurr
591Date: Dec 2006
592Contact: Linux for PowerPC mailing list <linuxppc-dev@ozlabs.org>
593Description: SPURR ticks for this CPU since the system boot.
594
595 The Scaled Processor Utilization Resources Register
596 (SPURR) is a 64-bit counter that provides a frequency
597 invariant estimate of the resources used by the CPU
598 thread. The contents of this register increases
599 monotonically. This sysfs interface exposes the number
600 of SPURR ticks for cpuX.
601
602What: /sys/devices/system/cpu/cpuX/idle_purr
603Date: Apr 2020
604Contact: Linux for PowerPC mailing list <linuxppc-dev@ozlabs.org>
605Description: PURR ticks for cpuX when it was idle.
606
607 This sysfs interface exposes the number of PURR ticks
608 for cpuX when it was idle.
609
610What: /sys/devices/system/cpu/cpuX/idle_spurr
611Date: Apr 2020
612Contact: Linux for PowerPC mailing list <linuxppc-dev@ozlabs.org>
613Description: SPURR ticks for cpuX when it was idle.
614
615 This sysfs interface exposes the number of SPURR ticks
616 for cpuX when it was idle.