0001 What: /sys/devices/system/cpu/
0002 Date: pre-git history
0003 Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org>
0004 Description:
0005 A collection of both global and individual CPU attributes
0006
0007 Individual CPU attributes are contained in subdirectories
0008 named by the kernel's logical CPU number, e.g.:
0009
0010 /sys/devices/system/cpu/cpuX/
0011
0012 What: /sys/devices/system/cpu/kernel_max
0013 /sys/devices/system/cpu/offline
0014 /sys/devices/system/cpu/online
0015 /sys/devices/system/cpu/possible
0016 /sys/devices/system/cpu/present
0017 Date: December 2008
0018 Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org>
0019 Description: CPU topology files that describe kernel limits related to
0020 hotplug. Briefly:
0021
0022 kernel_max: the maximum cpu index allowed by the kernel
0023 configuration.
0024
0025 offline: cpus that are not online because they have been
0026 HOTPLUGGED off or exceed the limit of cpus allowed by the
0027 kernel configuration (kernel_max above).
0028
0029 online: cpus that are online and being scheduled.
0030
0031 possible: cpus that have been allocated resources and can be
0032 brought online if they are present.
0033
0034 present: cpus that have been identified as being present in
0035 the system.
0036
0037 See Documentation/admin-guide/cputopology.rst for more information.
0038
0039
0040 What: /sys/devices/system/cpu/probe
0041 /sys/devices/system/cpu/release
0042 Date: November 2009
0043 Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org>
0044 Description: Dynamic addition and removal of CPU's. This is not hotplug
0045 removal, this is meant complete removal/addition of the CPU
0046 from the system.
0047
0048 probe: writes to this file will dynamically add a CPU to the
0049 system. Information written to the file to add CPU's is
0050 architecture specific.
0051
0052 release: writes to this file dynamically remove a CPU from
0053 the system. Information written to the file to remove CPU's
0054 is architecture specific.
0055
0056 What: /sys/devices/system/cpu/cpuX/node
0057 Date: October 2009
0058 Contact: Linux memory management mailing list <linux-mm@kvack.org>
0059 Description: Discover NUMA node a CPU belongs to
0060
0061 When CONFIG_NUMA is enabled, a symbolic link that points
0062 to the corresponding NUMA node directory.
0063
0064 For example, the following symlink is created for cpu42
0065 in NUMA node 2:
0066
0067 /sys/devices/system/cpu/cpu42/node2 -> ../../node/node2
0068
0069
0070 What: /sys/devices/system/cpu/cpuX/topology/core_siblings
0071 /sys/devices/system/cpu/cpuX/topology/core_siblings_list
0072 /sys/devices/system/cpu/cpuX/topology/physical_package_id
0073 /sys/devices/system/cpu/cpuX/topology/thread_siblings
0074 /sys/devices/system/cpu/cpuX/topology/thread_siblings_list
0075 /sys/devices/system/cpu/cpuX/topology/ppin
0076 Date: December 2008
0077 Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org>
0078 Description: CPU topology files that describe a logical CPU's relationship
0079 to other cores and threads in the same physical package.
0080
0081 One cpuX directory is created per logical CPU in the system,
0082 e.g. /sys/devices/system/cpu/cpu42/.
0083
0084 Briefly, the files above are:
0085
0086 core_siblings: internal kernel map of cpuX's hardware threads
0087 within the same physical_package_id.
0088
0089 core_siblings_list: human-readable list of the logical CPU
0090 numbers within the same physical_package_id as cpuX.
0091
0092 physical_package_id: physical package id of cpuX. Typically
0093 corresponds to a physical socket number, but the actual value
0094 is architecture and platform dependent.
0095
0096 thread_siblings: internal kernel map of cpuX's hardware
0097 threads within the same core as cpuX
0098
0099 thread_siblings_list: human-readable list of cpuX's hardware
0100 threads within the same core as cpuX
0101
0102 ppin: human-readable Protected Processor Identification
0103 Number of the socket the cpu# belongs to. There should be
0104 one per physical_package_id. File is readable only to
0105 admin.
0106
0107 See Documentation/admin-guide/cputopology.rst for more information.
0108
0109
0110 What: /sys/devices/system/cpu/cpuidle/available_governors
0111 /sys/devices/system/cpu/cpuidle/current_driver
0112 /sys/devices/system/cpu/cpuidle/current_governor
0113 /sys/devices/system/cpu/cpuidle/current_governer_ro
0114 Date: September 2007
0115 Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org>
0116 Description: Discover cpuidle policy and mechanism
0117
0118 Various CPUs today support multiple idle levels that are
0119 differentiated by varying exit latencies and power
0120 consumption during idle.
0121
0122 Idle policy (governor) is differentiated from idle mechanism
0123 (driver).
0124
0125 available_governors: (RO) displays a space separated list of
0126 available governors.
0127
0128 current_driver: (RO) displays current idle mechanism.
0129
0130 current_governor: (RW) displays current idle policy. Users can
0131 switch the governor at runtime by writing to this file.
0132
0133 current_governor_ro: (RO) displays current idle policy.
0134
0135 See Documentation/admin-guide/pm/cpuidle.rst and
0136 Documentation/driver-api/pm/cpuidle.rst for more information.
0137
0138
0139 What: /sys/devices/system/cpu/cpuX/cpuidle/state<N>/name
0140 /sys/devices/system/cpu/cpuX/cpuidle/stateN/latency
0141 /sys/devices/system/cpu/cpuX/cpuidle/stateN/power
0142 /sys/devices/system/cpu/cpuX/cpuidle/stateN/time
0143 /sys/devices/system/cpu/cpuX/cpuidle/stateN/usage
0144 /sys/devices/system/cpu/cpuX/cpuidle/stateN/above
0145 /sys/devices/system/cpu/cpuX/cpuidle/stateN/below
0146 Date: September 2007
0147 KernelVersion: v2.6.24
0148 Contact: Linux power management list <linux-pm@vger.kernel.org>
0149 Description:
0150 The directory /sys/devices/system/cpu/cpuX/cpuidle contains per
0151 logical CPU specific cpuidle information for each online cpu X.
0152 The processor idle states which are available for use have the
0153 following attributes:
0154
0155 ======== ==== =================================================
0156 name: (RO) Name of the idle state (string).
0157
0158 latency: (RO) The latency to exit out of this idle state (in
0159 microseconds).
0160
0161 power: (RO) The power consumed while in this idle state (in
0162 milliwatts).
0163
0164 time: (RO) The total time spent in this idle state
0165 (in microseconds).
0166
0167 usage: (RO) Number of times this state was entered (a count).
0168
0169 above: (RO) Number of times this state was entered, but the
0170 observed CPU idle duration was too short for it
0171 (a count).
0172
0173 below: (RO) Number of times this state was entered, but the
0174 observed CPU idle duration was too long for it
0175 (a count).
0176 ======== ==== =================================================
0177
0178 What: /sys/devices/system/cpu/cpuX/cpuidle/state<N>/desc
0179 Date: February 2008
0180 KernelVersion: v2.6.25
0181 Contact: Linux power management list <linux-pm@vger.kernel.org>
0182 Description:
0183 (RO) A small description about the idle state (string).
0184
0185
0186 What: /sys/devices/system/cpu/cpuX/cpuidle/state<N>/disable
0187 Date: March 2012
0188 KernelVersion: v3.10
0189 Contact: Linux power management list <linux-pm@vger.kernel.org>
0190 Description:
0191 (RW) Option to disable this idle state (bool). The behavior and
0192 the effect of the disable variable depends on the implementation
0193 of a particular governor. In the ladder governor, for example,
0194 it is not coherent, i.e. if one is disabling a light state, then
0195 all deeper states are disabled as well, but the disable variable
0196 does not reflect it. Likewise, if one enables a deep state but a
0197 lighter state still is disabled, then this has no effect.
0198
0199 What: /sys/devices/system/cpu/cpuX/cpuidle/state<N>/default_status
0200 Date: December 2019
0201 KernelVersion: v5.6
0202 Contact: Linux power management list <linux-pm@vger.kernel.org>
0203 Description:
0204 (RO) The default status of this state, "enabled" or "disabled".
0205
0206 What: /sys/devices/system/cpu/cpuX/cpuidle/state<N>/residency
0207 Date: March 2014
0208 KernelVersion: v3.15
0209 Contact: Linux power management list <linux-pm@vger.kernel.org>
0210 Description:
0211 (RO) Display the target residency i.e. the minimum amount of
0212 time (in microseconds) this cpu should spend in this idle state
0213 to make the transition worth the effort.
0214
0215 What: /sys/devices/system/cpu/cpuX/cpuidle/state<N>/s2idle/
0216 Date: March 2018
0217 KernelVersion: v4.17
0218 Contact: Linux power management list <linux-pm@vger.kernel.org>
0219 Description:
0220 Idle state usage statistics related to suspend-to-idle.
0221
0222 This attribute group is only present for states that can be
0223 used in suspend-to-idle with suspended timekeeping.
0224
0225 What: /sys/devices/system/cpu/cpuX/cpuidle/state<N>/s2idle/time
0226 Date: March 2018
0227 KernelVersion: v4.17
0228 Contact: Linux power management list <linux-pm@vger.kernel.org>
0229 Description:
0230 Total time spent by the CPU in suspend-to-idle (with scheduler
0231 tick suspended) after requesting this state.
0232
0233 What: /sys/devices/system/cpu/cpuX/cpuidle/state<N>/s2idle/usage
0234 Date: March 2018
0235 KernelVersion: v4.17
0236 Contact: Linux power management list <linux-pm@vger.kernel.org>
0237 Description:
0238 Total number of times this state has been requested by the CPU
0239 while entering suspend-to-idle.
0240
0241 What: /sys/devices/system/cpu/cpuX/cpufreq/*
0242 Date: pre-git history
0243 Contact: linux-pm@vger.kernel.org
0244 Description: Discover and change clock speed of CPUs
0245
0246 Clock scaling allows you to change the clock speed of the
0247 CPUs on the fly. This is a nice method to save battery
0248 power, because the lower the clock speed, the less power
0249 the CPU consumes.
0250
0251 There are many knobs to tweak in this directory.
0252
0253 See files in Documentation/cpu-freq/ for more information.
0254
0255
0256 What: /sys/devices/system/cpu/cpuX/cpufreq/freqdomain_cpus
0257 Date: June 2013
0258 Contact: linux-pm@vger.kernel.org
0259 Description: Discover CPUs in the same CPU frequency coordination domain
0260
0261 freqdomain_cpus is the list of CPUs (online+offline) that share
0262 the same clock/freq domain (possibly at the hardware level).
0263 That information may be hidden from the cpufreq core and the
0264 value of related_cpus may be different from freqdomain_cpus. This
0265 attribute is useful for user space DVFS controllers to get better
0266 power/performance results for platforms using acpi-cpufreq.
0267
0268 This file is only present if the acpi-cpufreq or the cppc-cpufreq
0269 drivers are in use.
0270
0271
0272 What: /sys/devices/system/cpu/cpu*/cache/index3/cache_disable_{0,1}
0273 Date: August 2008
0274 KernelVersion: 2.6.27
0275 Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org>
0276 Description: Disable L3 cache indices
0277
0278 These files exist in every CPU's cache/index3 directory. Each
0279 cache_disable_{0,1} file corresponds to one disable slot which
0280 can be used to disable a cache index. Reading from these files
0281 on a processor with this functionality will return the currently
0282 disabled index for that node. There is one L3 structure per
0283 node, or per internal node on MCM machines. Writing a valid
0284 index to one of these files will cause the specified cache
0285 index to be disabled.
0286
0287 All AMD processors with L3 caches provide this functionality.
0288 For details, see BKDGs at
0289 https://www.amd.com/en/support/tech-docs?keyword=bios+kernel
0290
0291
0292 What: /sys/devices/system/cpu/cpufreq/boost
0293 Date: August 2012
0294 Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org>
0295 Description: Processor frequency boosting control
0296
0297 This switch controls the boost setting for the whole system.
0298 Boosting allows the CPU and the firmware to run at a frequency
0299 beyond it's nominal limit.
0300
0301 More details can be found in
0302 Documentation/admin-guide/pm/cpufreq.rst
0303
0304
0305 What: /sys/devices/system/cpu/cpuX/crash_notes
0306 /sys/devices/system/cpu/cpuX/crash_notes_size
0307 Date: April 2013
0308 Contact: kexec@lists.infradead.org
0309 Description: address and size of the percpu note.
0310
0311 crash_notes: the physical address of the memory that holds the
0312 note of cpuX.
0313
0314 crash_notes_size: size of the note of cpuX.
0315
0316
0317 What: /sys/devices/system/cpu/intel_pstate/max_perf_pct
0318 /sys/devices/system/cpu/intel_pstate/min_perf_pct
0319 /sys/devices/system/cpu/intel_pstate/no_turbo
0320 Date: February 2013
0321 Contact: linux-pm@vger.kernel.org
0322 Description: Parameters for the Intel P-state driver
0323
0324 Logic for selecting the current P-state in Intel
0325 Sandybridge+ processors. The three knobs control
0326 limits for the P-state that will be requested by the
0327 driver.
0328
0329 max_perf_pct: limits the maximum P state that will be requested by
0330 the driver stated as a percentage of the available performance.
0331
0332 min_perf_pct: limits the minimum P state that will be requested by
0333 the driver stated as a percentage of the available performance.
0334
0335 no_turbo: limits the driver to selecting P states below the turbo
0336 frequency range.
0337
0338 More details can be found in
0339 Documentation/admin-guide/pm/intel_pstate.rst
0340
0341 What: /sys/devices/system/cpu/cpu*/cache/index*/<set_of_attributes_mentioned_below>
0342 Date: July 2014(documented, existed before August 2008)
0343 Contact: Sudeep Holla <sudeep.holla@arm.com>
0344 Linux kernel mailing list <linux-kernel@vger.kernel.org>
0345 Description: Parameters for the CPU cache attributes
0346
0347 allocation_policy:
0348 - WriteAllocate:
0349 allocate a memory location to a cache line
0350 on a cache miss because of a write
0351 - ReadAllocate:
0352 allocate a memory location to a cache line
0353 on a cache miss because of a read
0354 - ReadWriteAllocate:
0355 both writeallocate and readallocate
0356
0357 attributes:
0358 LEGACY used only on IA64 and is same as write_policy
0359
0360 coherency_line_size:
0361 the minimum amount of data in bytes that gets
0362 transferred from memory to cache
0363
0364 level:
0365 the cache hierarchy in the multi-level cache configuration
0366
0367 number_of_sets:
0368 total number of sets in the cache, a set is a
0369 collection of cache lines with the same cache index
0370
0371 physical_line_partition:
0372 number of physical cache line per cache tag
0373
0374 shared_cpu_list:
0375 the list of logical cpus sharing the cache
0376
0377 shared_cpu_map:
0378 logical cpu mask containing the list of cpus sharing
0379 the cache
0380
0381 size:
0382 the total cache size in kB
0383
0384 type:
0385 - Instruction: cache that only holds instructions
0386 - Data: cache that only caches data
0387 - Unified: cache that holds both data and instructions
0388
0389 ways_of_associativity:
0390 degree of freedom in placing a particular block
0391 of memory in the cache
0392
0393 write_policy:
0394 - WriteThrough:
0395 data is written to both the cache line
0396 and to the block in the lower-level memory
0397 - WriteBack:
0398 data is written only to the cache line and
0399 the modified cache line is written to main
0400 memory only when it is replaced
0401
0402
0403 What: /sys/devices/system/cpu/cpu*/cache/index*/id
0404 Date: September 2016
0405 Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org>
0406 Description: Cache id
0407
0408 The id provides a unique number for a specific instance of
0409 a cache of a particular type. E.g. there may be a level
0410 3 unified cache on each socket in a server and we may
0411 assign them ids 0, 1, 2, ...
0412
0413 Note that id value can be non-contiguous. E.g. level 1
0414 caches typically exist per core, but there may not be a
0415 power of two cores on a socket, so these caches may be
0416 numbered 0, 1, 2, 3, 4, 5, 8, 9, 10, ...
0417
0418 What: /sys/devices/system/cpu/cpuX/cpufreq/throttle_stats
0419 /sys/devices/system/cpu/cpuX/cpufreq/throttle_stats/turbo_stat
0420 /sys/devices/system/cpu/cpuX/cpufreq/throttle_stats/sub_turbo_stat
0421 /sys/devices/system/cpu/cpuX/cpufreq/throttle_stats/unthrottle
0422 /sys/devices/system/cpu/cpuX/cpufreq/throttle_stats/powercap
0423 /sys/devices/system/cpu/cpuX/cpufreq/throttle_stats/overtemp
0424 /sys/devices/system/cpu/cpuX/cpufreq/throttle_stats/supply_fault
0425 /sys/devices/system/cpu/cpuX/cpufreq/throttle_stats/overcurrent
0426 /sys/devices/system/cpu/cpuX/cpufreq/throttle_stats/occ_reset
0427 Date: March 2016
0428 Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org>
0429 Linux for PowerPC mailing list <linuxppc-dev@ozlabs.org>
0430 Description: POWERNV CPUFreq driver's frequency throttle stats directory and
0431 attributes
0432
0433 'cpuX/cpufreq/throttle_stats' directory contains the CPU frequency
0434 throttle stat attributes for the chip. The throttle stats of a cpu
0435 is common across all the cpus belonging to a chip. Below are the
0436 throttle attributes exported in the 'throttle_stats' directory:
0437
0438 - turbo_stat : This file gives the total number of times the max
0439 frequency is throttled to lower frequency in turbo (at and above
0440 nominal frequency) range of frequencies.
0441
0442 - sub_turbo_stat : This file gives the total number of times the
0443 max frequency is throttled to lower frequency in sub-turbo(below
0444 nominal frequency) range of frequencies.
0445
0446 - unthrottle : This file gives the total number of times the max
0447 frequency is unthrottled after being throttled.
0448
0449 - powercap : This file gives the total number of times the max
0450 frequency is throttled due to 'Power Capping'.
0451
0452 - overtemp : This file gives the total number of times the max
0453 frequency is throttled due to 'CPU Over Temperature'.
0454
0455 - supply_fault : This file gives the total number of times the
0456 max frequency is throttled due to 'Power Supply Failure'.
0457
0458 - overcurrent : This file gives the total number of times the
0459 max frequency is throttled due to 'Overcurrent'.
0460
0461 - occ_reset : This file gives the total number of times the max
0462 frequency is throttled due to 'OCC Reset'.
0463
0464 The sysfs attributes representing different throttle reasons like
0465 powercap, overtemp, supply_fault, overcurrent and occ_reset map to
0466 the reasons provided by OCC firmware for throttling the frequency.
0467
0468 What: /sys/devices/system/cpu/cpufreq/policyX/throttle_stats
0469 /sys/devices/system/cpu/cpufreq/policyX/throttle_stats/turbo_stat
0470 /sys/devices/system/cpu/cpufreq/policyX/throttle_stats/sub_turbo_stat
0471 /sys/devices/system/cpu/cpufreq/policyX/throttle_stats/unthrottle
0472 /sys/devices/system/cpu/cpufreq/policyX/throttle_stats/powercap
0473 /sys/devices/system/cpu/cpufreq/policyX/throttle_stats/overtemp
0474 /sys/devices/system/cpu/cpufreq/policyX/throttle_stats/supply_fault
0475 /sys/devices/system/cpu/cpufreq/policyX/throttle_stats/overcurrent
0476 /sys/devices/system/cpu/cpufreq/policyX/throttle_stats/occ_reset
0477 Date: March 2016
0478 Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org>
0479 Linux for PowerPC mailing list <linuxppc-dev@ozlabs.org>
0480 Description: POWERNV CPUFreq driver's frequency throttle stats directory and
0481 attributes
0482
0483 'policyX/throttle_stats' directory and all the attributes are same as
0484 the /sys/devices/system/cpu/cpuX/cpufreq/throttle_stats directory and
0485 attributes which give the frequency throttle information of the chip.
0486
0487 What: /sys/devices/system/cpu/cpuX/regs/
0488 /sys/devices/system/cpu/cpuX/regs/identification/
0489 /sys/devices/system/cpu/cpuX/regs/identification/midr_el1
0490 /sys/devices/system/cpu/cpuX/regs/identification/revidr_el1
0491 /sys/devices/system/cpu/cpuX/regs/identification/smidr_el1
0492 Date: June 2016
0493 Contact: Linux ARM Kernel Mailing list <linux-arm-kernel@lists.infradead.org>
0494 Description: AArch64 CPU registers
0495
0496 'identification' directory exposes the CPU ID registers for
0497 identifying model and revision of the CPU and SMCU.
0498
0499 What: /sys/devices/system/cpu/aarch32_el0
0500 Date: May 2021
0501 Contact: Linux ARM Kernel Mailing list <linux-arm-kernel@lists.infradead.org>
0502 Description: Identifies the subset of CPUs in the system that can execute
0503 AArch32 (32-bit ARM) applications. If present, the same format as
0504 /sys/devices/system/cpu/{offline,online,possible,present} is used.
0505 If absent, then all or none of the CPUs can execute AArch32
0506 applications and execve() will behave accordingly.
0507
0508 What: /sys/devices/system/cpu/cpuX/cpu_capacity
0509 Date: December 2016
0510 Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org>
0511 Description: information about CPUs heterogeneity.
0512
0513 cpu_capacity: capacity of cpuX.
0514
0515 What: /sys/devices/system/cpu/vulnerabilities
0516 /sys/devices/system/cpu/vulnerabilities/meltdown
0517 /sys/devices/system/cpu/vulnerabilities/spectre_v1
0518 /sys/devices/system/cpu/vulnerabilities/spectre_v2
0519 /sys/devices/system/cpu/vulnerabilities/spec_store_bypass
0520 /sys/devices/system/cpu/vulnerabilities/l1tf
0521 /sys/devices/system/cpu/vulnerabilities/mds
0522 /sys/devices/system/cpu/vulnerabilities/srbds
0523 /sys/devices/system/cpu/vulnerabilities/tsx_async_abort
0524 /sys/devices/system/cpu/vulnerabilities/itlb_multihit
0525 /sys/devices/system/cpu/vulnerabilities/mmio_stale_data
0526 /sys/devices/system/cpu/vulnerabilities/retbleed
0527 Date: January 2018
0528 Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org>
0529 Description: Information about CPU vulnerabilities
0530
0531 The files are named after the code names of CPU
0532 vulnerabilities. The output of those files reflects the
0533 state of the CPUs in the system. Possible output values:
0534
0535 ================ ==============================================
0536 "Not affected" CPU is not affected by the vulnerability
0537 "Vulnerable" CPU is affected and no mitigation in effect
0538 "Mitigation: $M" CPU is affected and mitigation $M is in effect
0539 ================ ==============================================
0540
0541 See also: Documentation/admin-guide/hw-vuln/index.rst
0542
0543 What: /sys/devices/system/cpu/smt
0544 /sys/devices/system/cpu/smt/active
0545 /sys/devices/system/cpu/smt/control
0546 Date: June 2018
0547 Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org>
0548 Description: Control Symmetric Multi Threading (SMT)
0549
0550 active: Tells whether SMT is active (enabled and siblings online)
0551
0552 control: Read/write interface to control SMT. Possible
0553 values:
0554
0555 ================ =========================================
0556 "on" SMT is enabled
0557 "off" SMT is disabled
0558 "forceoff" SMT is force disabled. Cannot be changed.
0559 "notsupported" SMT is not supported by the CPU
0560 "notimplemented" SMT runtime toggling is not
0561 implemented for the architecture
0562 ================ =========================================
0563
0564 If control status is "forceoff" or "notsupported" writes
0565 are rejected.
0566
0567 What: /sys/devices/system/cpu/cpuX/power/energy_perf_bias
0568 Date: March 2019
0569 Contact: linux-pm@vger.kernel.org
0570 Description: Intel Energy and Performance Bias Hint (EPB)
0571
0572 EPB for the given CPU in a sliding scale 0 - 15, where a value
0573 of 0 corresponds to a hint preference for highest performance
0574 and a value of 15 corresponds to the maximum energy savings.
0575
0576 In order to change the EPB value for the CPU, write either
0577 a number in the 0 - 15 sliding scale above, or one of the
0578 strings: "performance", "balance-performance", "normal",
0579 "balance-power", "power" (that represent values reflected by
0580 their meaning), to this attribute.
0581
0582 This attribute is present for all online CPUs supporting the
0583 Intel EPB feature.
0584
0585 What: /sys/devices/system/cpu/umwait_control
0586 /sys/devices/system/cpu/umwait_control/enable_c02
0587 /sys/devices/system/cpu/umwait_control/max_time
0588 Date: May 2019
0589 Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org>
0590 Description: Umwait control
0591
0592 enable_c02: Read/write interface to control umwait C0.2 state
0593 Read returns C0.2 state status:
0594 0: C0.2 is disabled
0595 1: C0.2 is enabled
0596
0597 Write 'y' or '1' or 'on' to enable C0.2 state.
0598 Write 'n' or '0' or 'off' to disable C0.2 state.
0599
0600 The interface is case insensitive.
0601
0602 max_time: Read/write interface to control umwait maximum time
0603 in TSC-quanta that the CPU can reside in either C0.1
0604 or C0.2 state. The time is an unsigned 32-bit number.
0605 Note that a value of zero means there is no limit.
0606 Low order two bits must be zero.
0607
0608 What: /sys/devices/system/cpu/svm
0609 Date: August 2019
0610 Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org>
0611 Linux for PowerPC mailing list <linuxppc-dev@ozlabs.org>
0612 Description: Secure Virtual Machine
0613
0614 If 1, it means the system is using the Protected Execution
0615 Facility in POWER9 and newer processors. i.e., it is a Secure
0616 Virtual Machine.
0617
0618 What: /sys/devices/system/cpu/cpuX/purr
0619 Date: Apr 2005
0620 Contact: Linux for PowerPC mailing list <linuxppc-dev@ozlabs.org>
0621 Description: PURR ticks for this CPU since the system boot.
0622
0623 The Processor Utilization Resources Register (PURR) is
0624 a 64-bit counter which provides an estimate of the
0625 resources used by the CPU thread. The contents of this
0626 register increases monotonically. This sysfs interface
0627 exposes the number of PURR ticks for cpuX.
0628
0629 What: /sys/devices/system/cpu/cpuX/spurr
0630 Date: Dec 2006
0631 Contact: Linux for PowerPC mailing list <linuxppc-dev@ozlabs.org>
0632 Description: SPURR ticks for this CPU since the system boot.
0633
0634 The Scaled Processor Utilization Resources Register
0635 (SPURR) is a 64-bit counter that provides a frequency
0636 invariant estimate of the resources used by the CPU
0637 thread. The contents of this register increases
0638 monotonically. This sysfs interface exposes the number
0639 of SPURR ticks for cpuX.
0640
0641 What: /sys/devices/system/cpu/cpuX/idle_purr
0642 Date: Apr 2020
0643 Contact: Linux for PowerPC mailing list <linuxppc-dev@ozlabs.org>
0644 Description: PURR ticks for cpuX when it was idle.
0645
0646 This sysfs interface exposes the number of PURR ticks
0647 for cpuX when it was idle.
0648
0649 What: /sys/devices/system/cpu/cpuX/idle_spurr
0650 Date: Apr 2020
0651 Contact: Linux for PowerPC mailing list <linuxppc-dev@ozlabs.org>
0652 Description: SPURR ticks for cpuX when it was idle.
0653
0654 This sysfs interface exposes the number of SPURR ticks
0655 for cpuX when it was idle.
0656
0657 What: /sys/devices/system/cpu/cpuX/mte_tcf_preferred
0658 Date: July 2021
0659 Contact: Linux ARM Kernel Mailing list <linux-arm-kernel@lists.infradead.org>
0660 Description: Preferred MTE tag checking mode
0661
0662 When a user program specifies more than one MTE tag checking
0663 mode, this sysfs node is used to specify which mode should
0664 be preferred when scheduling a task on that CPU. Possible
0665 values:
0666
0667 ================ ==============================================
0668 "sync" Prefer synchronous mode
0669 "asymm" Prefer asymmetric mode
0670 "async" Prefer asynchronous mode
0671 ================ ==============================================
0672
0673 See also: Documentation/arm64/memory-tagging-extension.rst
0674
0675 What: /sys/devices/system/cpu/nohz_full
0676 Date: Apr 2015
0677 Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org>
0678 Description:
0679 (RO) the list of CPUs that are in nohz_full mode.
0680 These CPUs are set by boot parameter "nohz_full=".
0681
0682 What: /sys/devices/system/cpu/isolated
0683 Date: Apr 2015
0684 Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org>
0685 Description:
0686 (RO) the list of CPUs that are isolated and don't
0687 participate in load balancing. These CPUs are set by
0688 boot parameter "isolcpus=".