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/cpuX/ 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 written to the file to remove CPU's 54 is architecture specific. 55 56What: /sys/devices/system/cpu/cpuX/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/cpuX/topology/core_id 71 /sys/devices/system/cpu/cpuX/topology/core_siblings 72 /sys/devices/system/cpu/cpuX/topology/core_siblings_list 73 /sys/devices/system/cpu/cpuX/topology/physical_package_id 74 /sys/devices/system/cpu/cpuX/topology/thread_siblings 75 /sys/devices/system/cpu/cpuX/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 cpuX 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 cpuX. 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 cpuX'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 cpuX. 95 96 physical_package_id: physical package id of cpuX. Typically 97 corresponds to a physical socket number, but the actual value 98 is architecture and platform dependent. 99 100 thread_siblings: internal kernel map of cpuX's hardware 101 threads within the same core as cpuX 102 103 thread_siblings_list: human-readable list of cpuX's hardware 104 threads within the same core as cpuX 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/state<N>/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 ======== ==== ================================================= 155 name: (RO) Name of the idle state (string). 156 157 latency: (RO) The latency to exit out of this idle state (in 158 microseconds). 159 160 power: (RO) The power consumed while in this idle state (in 161 milliwatts). 162 163 time: (RO) The total time spent in this idle state 164 (in microseconds). 165 166 usage: (RO) Number of times this state was entered (a count). 167 168 above: (RO) Number of times this state was entered, but the 169 observed CPU idle duration was too short for it 170 (a count). 171 172 below: (RO) Number of times this state was entered, but the 173 observed CPU idle duration was too long for it 174 (a count). 175 ======== ==== ================================================= 176 177What: /sys/devices/system/cpu/cpuX/cpuidle/state<N>/desc 178Date: February 2008 179KernelVersion: v2.6.25 180Contact: Linux power management list <linux-pm@vger.kernel.org> 181Description: 182 (RO) A small description about the idle state (string). 183 184 185What: /sys/devices/system/cpu/cpuX/cpuidle/state<N>/disable 186Date: March 2012 187KernelVersion: v3.10 188Contact: Linux power management list <linux-pm@vger.kernel.org> 189Description: 190 (RW) Option to disable this idle state (bool). The behavior and 191 the effect of the disable variable depends on the implementation 192 of a particular governor. In the ladder governor, for example, 193 it is not coherent, i.e. if one is disabling a light state, then 194 all deeper states are disabled as well, but the disable variable 195 does not reflect it. Likewise, if one enables a deep state but a 196 lighter state still is disabled, then this has no effect. 197 198What: /sys/devices/system/cpu/cpuX/cpuidle/state<N>/default_status 199Date: December 2019 200KernelVersion: v5.6 201Contact: Linux power management list <linux-pm@vger.kernel.org> 202Description: 203 (RO) The default status of this state, "enabled" or "disabled". 204 205What: /sys/devices/system/cpu/cpuX/cpuidle/state<N>/residency 206Date: March 2014 207KernelVersion: v3.15 208Contact: Linux power management list <linux-pm@vger.kernel.org> 209Description: 210 (RO) Display the target residency i.e. the minimum amount of 211 time (in microseconds) this cpu should spend in this idle state 212 to make the transition worth the effort. 213 214What: /sys/devices/system/cpu/cpuX/cpuidle/state<N>/s2idle/ 215Date: March 2018 216KernelVersion: v4.17 217Contact: Linux power management list <linux-pm@vger.kernel.org> 218Description: 219 Idle state usage statistics related to suspend-to-idle. 220 221 This attribute group is only present for states that can be 222 used in suspend-to-idle with suspended timekeeping. 223 224What: /sys/devices/system/cpu/cpuX/cpuidle/state<N>/s2idle/time 225Date: March 2018 226KernelVersion: v4.17 227Contact: Linux power management list <linux-pm@vger.kernel.org> 228Description: 229 Total time spent by the CPU in suspend-to-idle (with scheduler 230 tick suspended) after requesting this state. 231 232What: /sys/devices/system/cpu/cpuX/cpuidle/state<N>/s2idle/usage 233Date: March 2018 234KernelVersion: v4.17 235Contact: Linux power management list <linux-pm@vger.kernel.org> 236Description: 237 Total number of times this state has been requested by the CPU 238 while entering suspend-to-idle. 239 240What: /sys/devices/system/cpu/cpuX/cpufreq/* 241Date: pre-git history 242Contact: linux-pm@vger.kernel.org 243Description: Discover and change clock speed of CPUs 244 245 Clock scaling allows you to change the clock speed of the 246 CPUs on the fly. This is a nice method to save battery 247 power, because the lower the clock speed, the less power 248 the CPU consumes. 249 250 There are many knobs to tweak in this directory. 251 252 See files in Documentation/cpu-freq/ for more information. 253 254 255What: /sys/devices/system/cpu/cpuX/cpufreq/freqdomain_cpus 256Date: June 2013 257Contact: linux-pm@vger.kernel.org 258Description: Discover CPUs in the same CPU frequency coordination domain 259 260 freqdomain_cpus is the list of CPUs (online+offline) that share 261 the same clock/freq domain (possibly at the hardware level). 262 That information may be hidden from the cpufreq core and the 263 value of related_cpus may be different from freqdomain_cpus. This 264 attribute is useful for user space DVFS controllers to get better 265 power/performance results for platforms using acpi-cpufreq. 266 267 This file is only present if the acpi-cpufreq or the cppc-cpufreq 268 drivers are in use. 269 270 271What: /sys/devices/system/cpu/cpu*/cache/index3/cache_disable_{0,1} 272Date: August 2008 273KernelVersion: 2.6.27 274Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org> 275Description: Disable L3 cache indices 276 277 These files exist in every CPU's cache/index3 directory. Each 278 cache_disable_{0,1} file corresponds to one disable slot which 279 can be used to disable a cache index. Reading from these files 280 on a processor with this functionality will return the currently 281 disabled index for that node. There is one L3 structure per 282 node, or per internal node on MCM machines. Writing a valid 283 index to one of these files will cause the specified cache 284 index to be disabled. 285 286 All AMD processors with L3 caches provide this functionality. 287 For details, see BKDGs at 288 https://www.amd.com/en/support/tech-docs?keyword=bios+kernel 289 290 291What: /sys/devices/system/cpu/cpufreq/boost 292Date: August 2012 293Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org> 294Description: Processor frequency boosting control 295 296 This switch controls the boost setting for the whole system. 297 Boosting allows the CPU and the firmware to run at a frequency 298 beyond it's nominal limit. 299 300 More details can be found in 301 Documentation/admin-guide/pm/cpufreq.rst 302 303 304What: /sys/devices/system/cpu/cpuX/crash_notes 305 /sys/devices/system/cpu/cpuX/crash_notes_size 306Date: April 2013 307Contact: kexec@lists.infradead.org 308Description: address and size of the percpu note. 309 310 crash_notes: the physical address of the memory that holds the 311 note of cpuX. 312 313 crash_notes_size: size of the note of cpuX. 314 315 316What: /sys/devices/system/cpu/intel_pstate/max_perf_pct 317 /sys/devices/system/cpu/intel_pstate/min_perf_pct 318 /sys/devices/system/cpu/intel_pstate/no_turbo 319Date: February 2013 320Contact: linux-pm@vger.kernel.org 321Description: Parameters for the Intel P-state driver 322 323 Logic for selecting the current P-state in Intel 324 Sandybridge+ processors. The three knobs control 325 limits for the P-state that will be requested by the 326 driver. 327 328 max_perf_pct: limits the maximum P state that will be requested by 329 the driver stated as a percentage of the available performance. 330 331 min_perf_pct: limits the minimum P state that will be requested by 332 the driver stated as a percentage of the available performance. 333 334 no_turbo: limits the driver to selecting P states below the turbo 335 frequency range. 336 337 More details can be found in 338 Documentation/admin-guide/pm/intel_pstate.rst 339 340What: /sys/devices/system/cpu/cpu*/cache/index*/<set_of_attributes_mentioned_below> 341Date: July 2014(documented, existed before August 2008) 342Contact: Sudeep Holla <sudeep.holla@arm.com> 343 Linux kernel mailing list <linux-kernel@vger.kernel.org> 344Description: Parameters for the CPU cache attributes 345 346 allocation_policy: 347 - WriteAllocate: 348 allocate a memory location to a cache line 349 on a cache miss because of a write 350 - ReadAllocate: 351 allocate a memory location to a cache line 352 on a cache miss because of a read 353 - ReadWriteAllocate: 354 both writeallocate and readallocate 355 356 attributes: 357 LEGACY used only on IA64 and is same as write_policy 358 359 coherency_line_size: 360 the minimum amount of data in bytes that gets 361 transferred from memory to cache 362 363 level: 364 the cache hierarchy in the multi-level cache configuration 365 366 number_of_sets: 367 total number of sets in the cache, a set is a 368 collection of cache lines with the same cache index 369 370 physical_line_partition: 371 number of physical cache line per cache tag 372 373 shared_cpu_list: 374 the list of logical cpus sharing the cache 375 376 shared_cpu_map: 377 logical cpu mask containing the list of cpus sharing 378 the cache 379 380 size: 381 the total cache size in kB 382 383 type: 384 - Instruction: cache that only holds instructions 385 - Data: cache that only caches data 386 - Unified: cache that holds both data and instructions 387 388 ways_of_associativity: 389 degree of freedom in placing a particular block 390 of memory in the cache 391 392 write_policy: 393 - WriteThrough: 394 data is written to both the cache line 395 and to the block in the lower-level memory 396 - WriteBack: 397 data is written only to the cache line and 398 the modified cache line is written to main 399 memory only when it is replaced 400 401 402What: /sys/devices/system/cpu/cpu*/cache/index*/id 403Date: September 2016 404Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org> 405Description: Cache id 406 407 The id provides a unique number for a specific instance of 408 a cache of a particular type. E.g. there may be a level 409 3 unified cache on each socket in a server and we may 410 assign them ids 0, 1, 2, ... 411 412 Note that id value can be non-contiguous. E.g. level 1 413 caches typically exist per core, but there may not be a 414 power of two cores on a socket, so these caches may be 415 numbered 0, 1, 2, 3, 4, 5, 8, 9, 10, ... 416 417What: /sys/devices/system/cpu/cpuX/cpufreq/throttle_stats 418 /sys/devices/system/cpu/cpuX/cpufreq/throttle_stats/turbo_stat 419 /sys/devices/system/cpu/cpuX/cpufreq/throttle_stats/sub_turbo_stat 420 /sys/devices/system/cpu/cpuX/cpufreq/throttle_stats/unthrottle 421 /sys/devices/system/cpu/cpuX/cpufreq/throttle_stats/powercap 422 /sys/devices/system/cpu/cpuX/cpufreq/throttle_stats/overtemp 423 /sys/devices/system/cpu/cpuX/cpufreq/throttle_stats/supply_fault 424 /sys/devices/system/cpu/cpuX/cpufreq/throttle_stats/overcurrent 425 /sys/devices/system/cpu/cpuX/cpufreq/throttle_stats/occ_reset 426Date: March 2016 427Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org> 428 Linux for PowerPC mailing list <linuxppc-dev@ozlabs.org> 429Description: POWERNV CPUFreq driver's frequency throttle stats directory and 430 attributes 431 432 'cpuX/cpufreq/throttle_stats' directory contains the CPU frequency 433 throttle stat attributes for the chip. The throttle stats of a cpu 434 is common across all the cpus belonging to a chip. Below are the 435 throttle attributes exported in the 'throttle_stats' directory: 436 437 - turbo_stat : This file gives the total number of times the max 438 frequency is throttled to lower frequency in turbo (at and above 439 nominal frequency) range of frequencies. 440 441 - sub_turbo_stat : This file gives the total number of times the 442 max frequency is throttled to lower frequency in sub-turbo(below 443 nominal frequency) range of frequencies. 444 445 - unthrottle : This file gives the total number of times the max 446 frequency is unthrottled after being throttled. 447 448 - powercap : This file gives the total number of times the max 449 frequency is throttled due to 'Power Capping'. 450 451 - overtemp : This file gives the total number of times the max 452 frequency is throttled due to 'CPU Over Temperature'. 453 454 - supply_fault : This file gives the total number of times the 455 max frequency is throttled due to 'Power Supply Failure'. 456 457 - overcurrent : This file gives the total number of times the 458 max frequency is throttled due to 'Overcurrent'. 459 460 - occ_reset : This file gives the total number of times the max 461 frequency is throttled due to 'OCC Reset'. 462 463 The sysfs attributes representing different throttle reasons like 464 powercap, overtemp, supply_fault, overcurrent and occ_reset map to 465 the reasons provided by OCC firmware for throttling the frequency. 466 467What: /sys/devices/system/cpu/cpufreq/policyX/throttle_stats 468 /sys/devices/system/cpu/cpufreq/policyX/throttle_stats/turbo_stat 469 /sys/devices/system/cpu/cpufreq/policyX/throttle_stats/sub_turbo_stat 470 /sys/devices/system/cpu/cpufreq/policyX/throttle_stats/unthrottle 471 /sys/devices/system/cpu/cpufreq/policyX/throttle_stats/powercap 472 /sys/devices/system/cpu/cpufreq/policyX/throttle_stats/overtemp 473 /sys/devices/system/cpu/cpufreq/policyX/throttle_stats/supply_fault 474 /sys/devices/system/cpu/cpufreq/policyX/throttle_stats/overcurrent 475 /sys/devices/system/cpu/cpufreq/policyX/throttle_stats/occ_reset 476Date: March 2016 477Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org> 478 Linux for PowerPC mailing list <linuxppc-dev@ozlabs.org> 479Description: POWERNV CPUFreq driver's frequency throttle stats directory and 480 attributes 481 482 'policyX/throttle_stats' directory and all the attributes are same as 483 the /sys/devices/system/cpu/cpuX/cpufreq/throttle_stats directory and 484 attributes which give the frequency throttle information of the chip. 485 486What: /sys/devices/system/cpu/cpuX/regs/ 487 /sys/devices/system/cpu/cpuX/regs/identification/ 488 /sys/devices/system/cpu/cpuX/regs/identification/midr_el1 489 /sys/devices/system/cpu/cpuX/regs/identification/revidr_el1 490Date: June 2016 491Contact: Linux ARM Kernel Mailing list <linux-arm-kernel@lists.infradead.org> 492Description: AArch64 CPU registers 493 494 'identification' directory exposes the CPU ID registers for 495 identifying model and revision of the CPU. 496 497What: /sys/devices/system/cpu/aarch32_el0 498Date: May 2021 499Contact: Linux ARM Kernel Mailing list <linux-arm-kernel@lists.infradead.org> 500Description: Identifies the subset of CPUs in the system that can execute 501 AArch32 (32-bit ARM) applications. If present, the same format as 502 /sys/devices/system/cpu/{offline,online,possible,present} is used. 503 If absent, then all or none of the CPUs can execute AArch32 504 applications and execve() will behave accordingly. 505 506What: /sys/devices/system/cpu/cpuX/cpu_capacity 507Date: December 2016 508Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org> 509Description: information about CPUs heterogeneity. 510 511 cpu_capacity: capacity of cpuX. 512 513What: /sys/devices/system/cpu/vulnerabilities 514 /sys/devices/system/cpu/vulnerabilities/meltdown 515 /sys/devices/system/cpu/vulnerabilities/spectre_v1 516 /sys/devices/system/cpu/vulnerabilities/spectre_v2 517 /sys/devices/system/cpu/vulnerabilities/spec_store_bypass 518 /sys/devices/system/cpu/vulnerabilities/l1tf 519 /sys/devices/system/cpu/vulnerabilities/mds 520 /sys/devices/system/cpu/vulnerabilities/srbds 521 /sys/devices/system/cpu/vulnerabilities/tsx_async_abort 522 /sys/devices/system/cpu/vulnerabilities/itlb_multihit 523Date: January 2018 524Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org> 525Description: Information about CPU vulnerabilities 526 527 The files are named after the code names of CPU 528 vulnerabilities. The output of those files reflects the 529 state of the CPUs in the system. Possible output values: 530 531 ================ ============================================== 532 "Not affected" CPU is not affected by the vulnerability 533 "Vulnerable" CPU is affected and no mitigation in effect 534 "Mitigation: $M" CPU is affected and mitigation $M is in effect 535 ================ ============================================== 536 537 See also: Documentation/admin-guide/hw-vuln/index.rst 538 539What: /sys/devices/system/cpu/smt 540 /sys/devices/system/cpu/smt/active 541 /sys/devices/system/cpu/smt/control 542Date: June 2018 543Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org> 544Description: Control Symmetric Multi Threading (SMT) 545 546 active: Tells whether SMT is active (enabled and siblings online) 547 548 control: Read/write interface to control SMT. Possible 549 values: 550 551 ================ ========================================= 552 "on" SMT is enabled 553 "off" SMT is disabled 554 "forceoff" SMT is force disabled. Cannot be changed. 555 "notsupported" SMT is not supported by the CPU 556 "notimplemented" SMT runtime toggling is not 557 implemented for the architecture 558 ================ ========================================= 559 560 If control status is "forceoff" or "notsupported" writes 561 are rejected. 562 563What: /sys/devices/system/cpu/cpuX/power/energy_perf_bias 564Date: March 2019 565Contact: linux-pm@vger.kernel.org 566Description: Intel Energy and Performance Bias Hint (EPB) 567 568 EPB for the given CPU in a sliding scale 0 - 15, where a value 569 of 0 corresponds to a hint preference for highest performance 570 and a value of 15 corresponds to the maximum energy savings. 571 572 In order to change the EPB value for the CPU, write either 573 a number in the 0 - 15 sliding scale above, or one of the 574 strings: "performance", "balance-performance", "normal", 575 "balance-power", "power" (that represent values reflected by 576 their meaning), to this attribute. 577 578 This attribute is present for all online CPUs supporting the 579 Intel EPB feature. 580 581What: /sys/devices/system/cpu/umwait_control 582 /sys/devices/system/cpu/umwait_control/enable_c02 583 /sys/devices/system/cpu/umwait_control/max_time 584Date: May 2019 585Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org> 586Description: Umwait control 587 588 enable_c02: Read/write interface to control umwait C0.2 state 589 Read returns C0.2 state status: 590 0: C0.2 is disabled 591 1: C0.2 is enabled 592 593 Write 'y' or '1' or 'on' to enable C0.2 state. 594 Write 'n' or '0' or 'off' to disable C0.2 state. 595 596 The interface is case insensitive. 597 598 max_time: Read/write interface to control umwait maximum time 599 in TSC-quanta that the CPU can reside in either C0.1 600 or C0.2 state. The time is an unsigned 32-bit number. 601 Note that a value of zero means there is no limit. 602 Low order two bits must be zero. 603 604What: /sys/devices/system/cpu/svm 605Date: August 2019 606Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org> 607 Linux for PowerPC mailing list <linuxppc-dev@ozlabs.org> 608Description: Secure Virtual Machine 609 610 If 1, it means the system is using the Protected Execution 611 Facility in POWER9 and newer processors. i.e., it is a Secure 612 Virtual Machine. 613 614What: /sys/devices/system/cpu/cpuX/purr 615Date: Apr 2005 616Contact: Linux for PowerPC mailing list <linuxppc-dev@ozlabs.org> 617Description: PURR ticks for this CPU since the system boot. 618 619 The Processor Utilization Resources Register (PURR) is 620 a 64-bit counter which provides an estimate of the 621 resources used by the CPU thread. The contents of this 622 register increases monotonically. This sysfs interface 623 exposes the number of PURR ticks for cpuX. 624 625What: /sys/devices/system/cpu/cpuX/spurr 626Date: Dec 2006 627Contact: Linux for PowerPC mailing list <linuxppc-dev@ozlabs.org> 628Description: SPURR ticks for this CPU since the system boot. 629 630 The Scaled Processor Utilization Resources Register 631 (SPURR) is a 64-bit counter that provides a frequency 632 invariant estimate of the resources used by the CPU 633 thread. The contents of this register increases 634 monotonically. This sysfs interface exposes the number 635 of SPURR ticks for cpuX. 636 637What: /sys/devices/system/cpu/cpuX/idle_purr 638Date: Apr 2020 639Contact: Linux for PowerPC mailing list <linuxppc-dev@ozlabs.org> 640Description: PURR ticks for cpuX when it was idle. 641 642 This sysfs interface exposes the number of PURR ticks 643 for cpuX when it was idle. 644 645What: /sys/devices/system/cpu/cpuX/idle_spurr 646Date: Apr 2020 647Contact: Linux for PowerPC mailing list <linuxppc-dev@ozlabs.org> 648Description: SPURR ticks for cpuX when it was idle. 649 650 This sysfs interface exposes the number of SPURR ticks 651 for cpuX when it was idle. 652 653What: /sys/devices/system/cpu/cpuX/mte_tcf_preferred 654Date: July 2021 655Contact: Linux ARM Kernel Mailing list <linux-arm-kernel@lists.infradead.org> 656Description: Preferred MTE tag checking mode 657 658 When a user program specifies more than one MTE tag checking 659 mode, this sysfs node is used to specify which mode should 660 be preferred when scheduling a task on that CPU. Possible 661 values: 662 663 ================ ============================================== 664 "sync" Prefer synchronous mode 665 "async" Prefer asynchronous mode 666 ================ ============================================== 667 668 See also: Documentation/arm64/memory-tagging-extension.rst 669