blob: b555df825447a42d053d583bd11d92719e998cb4 [file] [log] [blame]
Alex Chiang2ceb3fb2009-10-21 21:45:20 -06001What: /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
Alex Chiangd93fc862009-10-21 21:45:25 -060012What: /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
Mauro Carvalho Chehab4f4cfa62019-06-27 14:56:51 -030037 See Documentation/admin-guide/cputopology.rst for more information.
Alex Chiangd93fc862009-10-21 21:45:25 -060038
39
Nathan Fontenot12633e82009-11-25 17:23:25 +000040What: /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.
Alex Chiang657348a2009-10-21 22:15:30 -060055
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
Alex Chiang663fb2f2009-10-21 21:45:31 -060070What: /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
Mauro Carvalho Chehab4f4cfa62019-06-27 14:56:51 -0300106 See Documentation/admin-guide/cputopology.rst for more information.
Alex Chiang663fb2f2009-10-21 21:45:31 -0600107
108
Hanjun Guo73956832020-05-19 14:25:24 +0800109What: /sys/devices/system/cpu/cpuidle/available_governors
110 /sys/devices/system/cpu/cpuidle/current_driver
Aishwarya Pantb6d8ef82018-02-07 19:04:36 +0530111 /sys/devices/system/cpu/cpuidle/current_governor
Hanjun Guo73956832020-05-19 14:25:24 +0800112 /sys/devices/system/cpu/cpuidle/current_governer_ro
Alex Chiangc1fb5c42009-10-21 21:45:41 -0600113Date: 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
Hanjun Guo73956832020-05-19 14:25:24 +0800122 (driver).
Aishwarya Pantb6d8ef82018-02-07 19:04:36 +0530123
124 available_governors: (RO) displays a space separated list of
Hanjun Guo73956832020-05-19 14:25:24 +0800125 available governors.
126
127 current_driver: (RO) displays current idle mechanism.
Aishwarya Pantb6d8ef82018-02-07 19:04:36 +0530128
129 current_governor: (RW) displays current idle policy. Users can
130 switch the governor at runtime by writing to this file.
Alex Chiangc1fb5c42009-10-21 21:45:41 -0600131
Hanjun Guo73956832020-05-19 14:25:24 +0800132 current_governor_ro: (RO) displays current idle policy.
133
Mauro Carvalho Chehab671c3092019-06-07 15:54:17 -0300134 See Documentation/admin-guide/pm/cpuidle.rst and
135 Documentation/driver-api/pm/cpuidle.rst for more information.
Alex Chiangc1fb5c42009-10-21 21:45:41 -0600136
137
Aishwarya Pantb6d8ef82018-02-07 19:04:36 +0530138What: /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
Rafael J. Wysocki04dab582018-12-10 12:30:23 +0100143 /sys/devices/system/cpu/cpuX/cpuidle/stateN/above
144 /sys/devices/system/cpu/cpuX/cpuidle/stateN/below
Aishwarya Pantb6d8ef82018-02-07 19:04:36 +0530145Date: 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
Rafael J. Wysocki04dab582018-12-10 12:30:23 +0100166 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).
Aishwarya Pantb6d8ef82018-02-07 19:04:36 +0530171
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
Rafael J. Wysocki75a80262019-12-13 09:56:13 +0100193What: /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".
Aishwarya Pantb6d8ef82018-02-07 19:04:36 +0530199
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
Rafael J. Wysocki64bdff62018-03-14 12:27:21 +0100209What: /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.
Aishwarya Pantb6d8ef82018-02-07 19:04:36 +0530234
Alex Chiang0cda8b92009-10-21 21:45:46 -0600235What: /sys/devices/system/cpu/cpu#/cpufreq/*
236Date: pre-git history
Viresh Kumardec102a2014-04-22 10:42:05 +0530237Contact: linux-pm@vger.kernel.org
Alex Chiang0cda8b92009-10-21 21:45:46 -0600238Description: 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
Alex Chiang0cda8b92009-10-21 21:45:46 -0600249
Lan Tianyuf4fd3792013-06-27 15:08:54 +0800250What: /sys/devices/system/cpu/cpu#/cpufreq/freqdomain_cpus
251Date: June 2013
Viresh Kumardec102a2014-04-22 10:42:05 +0530252Contact: linux-pm@vger.kernel.org
Lan Tianyuf4fd3792013-06-27 15:08:54 +0800253Description: 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
Borislav Petkoveecaaba2011-05-16 15:39:48 +0200265What: /sys/devices/system/cpu/cpu*/cache/index3/cache_disable_{0,1}
266Date: August 2008
Mark Langsdorf2fad2d92009-04-09 15:31:53 +0200267KernelVersion: 2.6.27
Aravind Gopalakrishnanea8e0802015-05-18 10:07:16 +0200268Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org>
Borislav Petkoveecaaba2011-05-16 15:39:48 +0200269Description: Disable L3 cache indices
Mark Langsdorf2fad2d92009-04-09 15:31:53 +0200270
Borislav Petkoveecaaba2011-05-16 15:39:48 +0200271 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
Andre Przywara615b7302012-09-04 08:28:07 +0000283
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.
Tom Saeger3ba9b1b2017-10-10 12:36:16 -0500293 More details can be found in
294 Documentation/admin-guide/pm/cpufreq.rst
Zhang Yanfeic4fd6752013-03-28 16:16:45 +0800295
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#.
Ramkumar Ramachandrafbe299e2014-01-06 18:24:26 +0530307
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
Tom Saeger3ba9b1b2017-10-10 12:36:16 -0500330 More details can be found in
331 Documentation/admin-guide/pm/intel_pstate.rst
Sudeep Holla246246c2014-09-30 14:48:25 +0100332
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
Will Deacon2539b252015-05-08 14:45:34 +0100351 level: the cache hierarchy in the multi-level cache configuration
Sudeep Holla246246c2014-09-30 14:48:25 +0100352
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
Shilpasri G Bhat1b028982016-03-22 18:57:09 +0530379
Tony Luck1d78dc52016-10-22 06:19:48 -0700380
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
Shilpasri G Bhat1b028982016-03-22 18:57:09 +0530396What: /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.
Steve Capperf8d9f922016-07-08 16:01:13 +0100464
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.
Juri Lellia2b60672017-03-27 14:18:18 +0100474
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#.
Thomas Gleixner87590ce2018-01-07 22:48:00 +0100481
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
Konrad Rzeszutek Wilkc4564422018-04-25 22:04:20 -0400486 /sys/devices/system/cpu/vulnerabilities/spec_store_bypass
Jiri Kosinad90a7a02018-07-13 16:23:25 +0200487 /sys/devices/system/cpu/vulnerabilities/l1tf
Thomas Gleixner8a4b06d2019-02-18 22:51:43 +0100488 /sys/devices/system/cpu/vulnerabilities/mds
Mark Gross7e5b3c22020-04-16 17:54:04 +0200489 /sys/devices/system/cpu/vulnerabilities/srbds
Pawan Guptaa7a248c2019-10-23 12:32:55 +0200490 /sys/devices/system/cpu/vulnerabilities/tsx_async_abort
Vineela Tummalapallidb4d30f2019-11-04 12:22:01 +0100491 /sys/devices/system/cpu/vulnerabilities/itlb_multihit
David Woodhouse9ecccfa2018-01-09 15:02:51 +0000492Date: January 2018
Thomas Gleixner87590ce2018-01-07 22:48:00 +0100493Contact: 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
David Woodhouse9ecccfa2018-01-09 15:02:51 +0000502 "Mitigation: $M" CPU is affected and mitigation $M is in effect
Thomas Gleixner05736e42018-05-29 17:48:27 +0200503
Thomas Gleixner5999bbe2019-02-19 00:02:31 +0100504 See also: Documentation/admin-guide/hw-vuln/index.rst
Jiri Kosinad90a7a02018-07-13 16:23:25 +0200505
Thomas Gleixner05736e42018-05-29 17:48:27 +0200506What: /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
Josh Poimboeufde7b77e2019-03-27 07:00:29 -0500518 "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
Thomas Gleixner05736e42018-05-29 17:48:27 +0200524
525 If control status is "forceoff" or "notsupported" writes
526 are rejected.
Rafael J. Wysockib9c273b2019-03-21 23:20:17 +0100527
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.
Fenghua Yu203dffa2019-06-19 18:33:58 -0700545
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.
Ryan Grimm734560a2019-08-19 23:13:21 -0300568
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.
Gautham R. Shenoybde752c2020-04-07 14:17:43 +0530578
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.