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_siblings 71 /sys/devices/system/cpu/cpuX/topology/core_siblings_list 72 /sys/devices/system/cpu/cpuX/topology/physical_package_id 73 /sys/devices/system/cpu/cpuX/topology/thread_siblings 74 /sys/devices/system/cpu/cpuX/topology/thread_siblings_list 75 /sys/devices/system/cpu/cpuX/topology/ppin 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_siblings: internal kernel map of cpuX's hardware threads 87 within the same physical_package_id. 88 89 core_siblings_list: human-readable list of the logical CPU 90 numbers within the same physical_package_id as cpuX. 91 92 physical_package_id: physical package id of cpuX. Typically 93 corresponds to a physical socket number, but the actual value 94 is architecture and platform dependent. 95 96 thread_siblings: internal kernel map of cpuX's hardware 97 threads within the same core as cpuX 98 99 thread_siblings_list: human-readable list of cpuX's hardware 100 threads within the same core as cpuX 101 102 ppin: human-readable Protected Processor Identification 103 Number of the socket the cpu# belongs to. There should be 104 one per physical_package_id. File is readable only to 105 admin. 106 107 See Documentation/admin-guide/cputopology.rst for more information. 108 109 110What: /sys/devices/system/cpu/cpuidle/available_governors 111 /sys/devices/system/cpu/cpuidle/current_driver 112 /sys/devices/system/cpu/cpuidle/current_governor 113 /sys/devices/system/cpu/cpuidle/current_governer_ro 114 /sys/devices/system/cpu/cpuidle/intel_c1_demotion 115Date: September 2007 116Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org> 117Description: Discover cpuidle policy and mechanism 118 119 Various CPUs today support multiple idle levels that are 120 differentiated by varying exit latencies and power 121 consumption during idle. 122 123 Idle policy (governor) is differentiated from idle mechanism 124 (driver). 125 126 available_governors: (RO) displays a space separated list of 127 available governors. 128 129 current_driver: (RO) displays current idle mechanism. 130 131 current_governor: (RW) displays current idle policy. Users can 132 switch the governor at runtime by writing to this file. 133 134 current_governor_ro: (RO) displays current idle policy. 135 136 intel_c1_demotion: (RW) enables/disables the C1 demotion 137 feature on Intel CPUs. 138 139 See Documentation/admin-guide/pm/cpuidle.rst, 140 Documentation/admin-guide/pm/intel_idle.rst, and 141 Documentation/driver-api/pm/cpuidle.rst for more information. 142 143 144What: /sys/devices/system/cpu/cpuX/cpuidle/state<N>/name 145 /sys/devices/system/cpu/cpuX/cpuidle/stateN/latency 146 /sys/devices/system/cpu/cpuX/cpuidle/stateN/power 147 /sys/devices/system/cpu/cpuX/cpuidle/stateN/time 148 /sys/devices/system/cpu/cpuX/cpuidle/stateN/usage 149 /sys/devices/system/cpu/cpuX/cpuidle/stateN/above 150 /sys/devices/system/cpu/cpuX/cpuidle/stateN/below 151Date: September 2007 152KernelVersion: v2.6.24 153Contact: Linux power management list <linux-pm@vger.kernel.org> 154Description: 155 The directory /sys/devices/system/cpu/cpuX/cpuidle contains per 156 logical CPU specific cpuidle information for each online cpu X. 157 The processor idle states which are available for use have the 158 following attributes: 159 160 ======== ==== ================================================= 161 name: (RO) Name of the idle state (string). 162 163 latency: (RO) The latency to exit out of this idle state (in 164 microseconds). 165 166 power: (RO) The power consumed while in this idle state (in 167 milliwatts). 168 169 time: (RO) The total time spent in this idle state 170 (in microseconds). 171 172 usage: (RO) Number of times this state was entered (a count). 173 174 above: (RO) Number of times this state was entered, but the 175 observed CPU idle duration was too short for it 176 (a count). 177 178 below: (RO) Number of times this state was entered, but the 179 observed CPU idle duration was too long for it 180 (a count). 181 ======== ==== ================================================= 182 183What: /sys/devices/system/cpu/cpuX/cpuidle/state<N>/desc 184Date: February 2008 185KernelVersion: v2.6.25 186Contact: Linux power management list <linux-pm@vger.kernel.org> 187Description: 188 (RO) A small description about the idle state (string). 189 190 191What: /sys/devices/system/cpu/cpuX/cpuidle/state<N>/disable 192Date: March 2012 193KernelVersion: v3.10 194Contact: Linux power management list <linux-pm@vger.kernel.org> 195Description: 196 (RW) Option to disable this idle state (bool). The behavior and 197 the effect of the disable variable depends on the implementation 198 of a particular governor. In the ladder governor, for example, 199 it is not coherent, i.e. if one is disabling a light state, then 200 all deeper states are disabled as well, but the disable variable 201 does not reflect it. Likewise, if one enables a deep state but a 202 lighter state still is disabled, then this has no effect. 203 204What: /sys/devices/system/cpu/cpuX/cpuidle/state<N>/default_status 205Date: December 2019 206KernelVersion: v5.6 207Contact: Linux power management list <linux-pm@vger.kernel.org> 208Description: 209 (RO) The default status of this state, "enabled" or "disabled". 210 211What: /sys/devices/system/cpu/cpuX/cpuidle/state<N>/residency 212Date: March 2014 213KernelVersion: v3.15 214Contact: Linux power management list <linux-pm@vger.kernel.org> 215Description: 216 (RO) Display the target residency i.e. the minimum amount of 217 time (in microseconds) this cpu should spend in this idle state 218 to make the transition worth the effort. 219 220What: /sys/devices/system/cpu/cpuX/cpuidle/state<N>/s2idle/ 221Date: March 2018 222KernelVersion: v4.17 223Contact: Linux power management list <linux-pm@vger.kernel.org> 224Description: 225 Idle state usage statistics related to suspend-to-idle. 226 227 This attribute group is only present for states that can be 228 used in suspend-to-idle with suspended timekeeping. 229 230What: /sys/devices/system/cpu/cpuX/cpuidle/state<N>/s2idle/time 231Date: March 2018 232KernelVersion: v4.17 233Contact: Linux power management list <linux-pm@vger.kernel.org> 234Description: 235 Total time spent by the CPU in suspend-to-idle (with scheduler 236 tick suspended) after requesting this state. 237 238What: /sys/devices/system/cpu/cpuX/cpuidle/state<N>/s2idle/usage 239Date: March 2018 240KernelVersion: v4.17 241Contact: Linux power management list <linux-pm@vger.kernel.org> 242Description: 243 Total number of times this state has been requested by the CPU 244 while entering suspend-to-idle. 245 246What: /sys/devices/system/cpu/cpuX/cpufreq/* 247Date: pre-git history 248Contact: linux-pm@vger.kernel.org 249Description: Discover and change clock speed of CPUs 250 251 Clock scaling allows you to change the clock speed of the 252 CPUs on the fly. This is a nice method to save battery 253 power, because the lower the clock speed, the less power 254 the CPU consumes. 255 256 There are many knobs to tweak in this directory. 257 258 See files in Documentation/cpu-freq/ for more information. 259 260 261What: /sys/devices/system/cpu/cpuX/cpufreq/freqdomain_cpus 262Date: June 2013 263Contact: linux-pm@vger.kernel.org 264Description: Discover CPUs in the same CPU frequency coordination domain 265 266 freqdomain_cpus is the list of CPUs (online+offline) that share 267 the same clock/freq domain (possibly at the hardware level). 268 That information may be hidden from the cpufreq core and the 269 value of related_cpus may be different from freqdomain_cpus. This 270 attribute is useful for user space DVFS controllers to get better 271 power/performance results for platforms using acpi-cpufreq. 272 273 This file is only present if the acpi-cpufreq or the cppc-cpufreq 274 drivers are in use. 275 276What: /sys/devices/system/cpu/cpuX/cpufreq/auto_select 277Date: May 2025 278Contact: linux-pm@vger.kernel.org 279Description: Autonomous selection enable 280 281 Read/write interface to control autonomous selection enable 282 Read returns autonomous selection status: 283 0: autonomous selection is disabled 284 1: autonomous selection is enabled 285 286 Write 'y' or '1' or 'on' to enable autonomous selection. 287 Write 'n' or '0' or 'off' to disable autonomous selection. 288 289 This file is only present if the cppc-cpufreq driver is in use. 290 291What: /sys/devices/system/cpu/cpuX/cpufreq/auto_act_window 292Date: May 2025 293Contact: linux-pm@vger.kernel.org 294Description: Autonomous activity window 295 296 This file indicates a moving utilization sensitivity window to 297 the platform's autonomous selection policy. 298 299 Read/write an integer represents autonomous activity window (in 300 microseconds) from/to this file. The max value to write is 301 1270000000 but the max significand is 127. This means that if 128 302 is written to this file, 127 will be stored. If the value is 303 greater than 130, only the first two digits will be saved as 304 significand. 305 306 Writing a zero value to this file enable the platform to 307 determine an appropriate Activity Window depending on the workload. 308 309 Writing to this file only has meaning when Autonomous Selection is 310 enabled. 311 312 This file is only present if the cppc-cpufreq driver is in use. 313 314What: /sys/devices/system/cpu/cpuX/cpufreq/energy_performance_preference_val 315Date: May 2025 316Contact: linux-pm@vger.kernel.org 317Description: Energy performance preference 318 319 Read/write an 8-bit integer from/to this file. This file 320 represents a range of values from 0 (performance preference) to 321 0xFF (energy efficiency preference) that influences the rate of 322 performance increase/decrease and the result of the hardware's 323 energy efficiency and performance optimization policies. 324 325 Writing to this file only has meaning when Autonomous Selection is 326 enabled. 327 328 This file is only present if the cppc-cpufreq driver is in use. 329 330What: /sys/devices/system/cpu/cpuX/cpufreq/perf_limited 331Date: February 2026 332Contact: linux-pm@vger.kernel.org 333Description: Performance Limited 334 335 Read to check if platform throttling (thermal/power/current 336 limits) caused delivered performance to fall below the 337 requested level. A non-zero value indicates throttling occurred. 338 If firmware provides the register but Linux cannot access it 339 safely, reads return the literal string "<unsupported>". 340 341 Write 0x3 to clear both bits. Selectively clearing one bit is 342 not supported because ACPI does not define the effect of writing 343 one to these status bits and an interlocked read-modify-write is 344 not generally available. 345 Writing 0x3 returns -EOPNOTSUPP when firmware describes the 346 register using an access which Linux cannot clear safely; reads 347 may remain available in that case. 348 349 The platform sets these bits; OSPM can only clear them. 350 351 This file is only present if the cppc-cpufreq driver is in use. 352 353What: /sys/devices/system/cpu/cpu*/cache/index3/cache_disable_{0,1} 354Date: August 2008 355KernelVersion: 2.6.27 356Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org> 357Description: Disable L3 cache indices 358 359 These files exist in every CPU's cache/index3 directory. Each 360 cache_disable_{0,1} file corresponds to one disable slot which 361 can be used to disable a cache index. Reading from these files 362 on a processor with this functionality will return the currently 363 disabled index for that node. There is one L3 structure per 364 node, or per internal node on MCM machines. Writing a valid 365 index to one of these files will cause the specified cache 366 index to be disabled. 367 368 All AMD processors with L3 caches provide this functionality. 369 For details, see BKDGs at 370 https://www.amd.com/en/support/tech-docs?keyword=bios+kernel 371 372 373What: /sys/devices/system/cpu/cpufreq/boost 374Date: August 2012 375Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org> 376Description: Processor frequency boosting control 377 378 This switch controls the boost setting for the whole system. 379 Boosting allows the CPU and the firmware to run at a frequency 380 beyond its nominal limit. 381 382 More details can be found in 383 Documentation/admin-guide/pm/cpufreq.rst 384 385 386What: /sys/devices/system/cpu/cpuX/crash_notes 387 /sys/devices/system/cpu/cpuX/crash_notes_size 388Date: April 2013 389Contact: kexec@lists.infradead.org 390Description: address and size of the percpu note. 391 392 crash_notes: the physical address of the memory that holds the 393 note of cpuX. 394 395 crash_notes_size: size of the note of cpuX. 396 397 398What: /sys/devices/system/cpu/intel_pstate/max_perf_pct 399 /sys/devices/system/cpu/intel_pstate/min_perf_pct 400 /sys/devices/system/cpu/intel_pstate/no_turbo 401Date: February 2013 402Contact: linux-pm@vger.kernel.org 403Description: Parameters for the Intel P-state driver 404 405 Logic for selecting the current P-state in Intel 406 Sandybridge+ processors. The three knobs control 407 limits for the P-state that will be requested by the 408 driver. 409 410 max_perf_pct: limits the maximum P state that will be requested by 411 the driver stated as a percentage of the available performance. 412 413 min_perf_pct: limits the minimum P state that will be requested by 414 the driver stated as a percentage of the available performance. 415 416 no_turbo: limits the driver to selecting P states below the turbo 417 frequency range. 418 419 More details can be found in 420 Documentation/admin-guide/pm/intel_pstate.rst 421 422What: /sys/devices/system/cpu/cpu*/cache/index*/<set_of_attributes_mentioned_below> 423Date: July 2014(documented, existed before August 2008) 424Contact: Sudeep Holla <sudeep.holla@arm.com> 425 Linux kernel mailing list <linux-kernel@vger.kernel.org> 426Description: Parameters for the CPU cache attributes 427 428 allocation_policy: 429 - WriteAllocate: 430 allocate a memory location to a cache line 431 on a cache miss because of a write 432 - ReadAllocate: 433 allocate a memory location to a cache line 434 on a cache miss because of a read 435 - ReadWriteAllocate: 436 both writeallocate and readallocate 437 438 coherency_line_size: 439 the minimum amount of data in bytes that gets 440 transferred from memory to cache 441 442 level: 443 the cache hierarchy in the multi-level cache configuration 444 445 number_of_sets: 446 total number of sets in the cache, a set is a 447 collection of cache lines with the same cache index 448 449 physical_line_partition: 450 number of physical cache line per cache tag 451 452 shared_cpu_list: 453 the list of logical cpus sharing the cache 454 455 shared_cpu_map: 456 logical cpu mask containing the list of cpus sharing 457 the cache 458 459 size: 460 the total cache size in kB 461 462 type: 463 - Instruction: cache that only holds instructions 464 - Data: cache that only caches data 465 - Unified: cache that holds both data and instructions 466 467 ways_of_associativity: 468 degree of freedom in placing a particular block 469 of memory in the cache 470 471 write_policy: 472 - WriteThrough: 473 data is written to both the cache line 474 and to the block in the lower-level memory 475 - WriteBack: 476 data is written only to the cache line and 477 the modified cache line is written to main 478 memory only when it is replaced 479 480 481What: /sys/devices/system/cpu/cpu*/cache/index*/id 482Date: September 2016 483Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org> 484Description: Cache id 485 486 The id provides a unique number for a specific instance of 487 a cache of a particular type. E.g. there may be a level 488 3 unified cache on each socket in a server and we may 489 assign them ids 0, 1, 2, ... 490 491 Note that id value can be non-contiguous. E.g. level 1 492 caches typically exist per core, but there may not be a 493 power of two cores on a socket, so these caches may be 494 numbered 0, 1, 2, 3, 4, 5, 8, 9, 10, ... 495 496What: /sys/devices/system/cpu/cpuX/cpufreq/throttle_stats 497 /sys/devices/system/cpu/cpuX/cpufreq/throttle_stats/turbo_stat 498 /sys/devices/system/cpu/cpuX/cpufreq/throttle_stats/sub_turbo_stat 499 /sys/devices/system/cpu/cpuX/cpufreq/throttle_stats/unthrottle 500 /sys/devices/system/cpu/cpuX/cpufreq/throttle_stats/powercap 501 /sys/devices/system/cpu/cpuX/cpufreq/throttle_stats/overtemp 502 /sys/devices/system/cpu/cpuX/cpufreq/throttle_stats/supply_fault 503 /sys/devices/system/cpu/cpuX/cpufreq/throttle_stats/overcurrent 504 /sys/devices/system/cpu/cpuX/cpufreq/throttle_stats/occ_reset 505Date: March 2016 506Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org> 507 Linux for PowerPC mailing list <linuxppc-dev@lists.ozlabs.org> 508Description: POWERNV CPUFreq driver's frequency throttle stats directory and 509 attributes 510 511 'cpuX/cpufreq/throttle_stats' directory contains the CPU frequency 512 throttle stat attributes for the chip. The throttle stats of a cpu 513 is common across all the cpus belonging to a chip. Below are the 514 throttle attributes exported in the 'throttle_stats' directory: 515 516 - turbo_stat : This file gives the total number of times the max 517 frequency is throttled to lower frequency in turbo (at and above 518 nominal frequency) range of frequencies. 519 520 - sub_turbo_stat : This file gives the total number of times the 521 max frequency is throttled to lower frequency in sub-turbo(below 522 nominal frequency) range of frequencies. 523 524 - unthrottle : This file gives the total number of times the max 525 frequency is unthrottled after being throttled. 526 527 - powercap : This file gives the total number of times the max 528 frequency is throttled due to 'Power Capping'. 529 530 - overtemp : This file gives the total number of times the max 531 frequency is throttled due to 'CPU Over Temperature'. 532 533 - supply_fault : This file gives the total number of times the 534 max frequency is throttled due to 'Power Supply Failure'. 535 536 - overcurrent : This file gives the total number of times the 537 max frequency is throttled due to 'Overcurrent'. 538 539 - occ_reset : This file gives the total number of times the max 540 frequency is throttled due to 'OCC Reset'. 541 542 The sysfs attributes representing different throttle reasons like 543 powercap, overtemp, supply_fault, overcurrent and occ_reset map to 544 the reasons provided by OCC firmware for throttling the frequency. 545 546What: /sys/devices/system/cpu/cpufreq/policyX/throttle_stats 547 /sys/devices/system/cpu/cpufreq/policyX/throttle_stats/turbo_stat 548 /sys/devices/system/cpu/cpufreq/policyX/throttle_stats/sub_turbo_stat 549 /sys/devices/system/cpu/cpufreq/policyX/throttle_stats/unthrottle 550 /sys/devices/system/cpu/cpufreq/policyX/throttle_stats/powercap 551 /sys/devices/system/cpu/cpufreq/policyX/throttle_stats/overtemp 552 /sys/devices/system/cpu/cpufreq/policyX/throttle_stats/supply_fault 553 /sys/devices/system/cpu/cpufreq/policyX/throttle_stats/overcurrent 554 /sys/devices/system/cpu/cpufreq/policyX/throttle_stats/occ_reset 555Date: March 2016 556Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org> 557 Linux for PowerPC mailing list <linuxppc-dev@lists.ozlabs.org> 558Description: POWERNV CPUFreq driver's frequency throttle stats directory and 559 attributes 560 561 'policyX/throttle_stats' directory and all the attributes are same as 562 the /sys/devices/system/cpu/cpuX/cpufreq/throttle_stats directory and 563 attributes which give the frequency throttle information of the chip. 564 565What: /sys/devices/system/cpu/cpuX/regs/ 566 /sys/devices/system/cpu/cpuX/regs/identification/ 567 /sys/devices/system/cpu/cpuX/regs/identification/midr_el1 568 /sys/devices/system/cpu/cpuX/regs/identification/revidr_el1 569 /sys/devices/system/cpu/cpuX/regs/identification/aidr_el1 570 /sys/devices/system/cpu/cpuX/regs/identification/smidr_el1 571Date: June 2016 572Contact: Linux ARM Kernel Mailing list <linux-arm-kernel@lists.infradead.org> 573Description: AArch64 CPU registers 574 575 'identification' directory exposes the CPU ID registers for 576 identifying model and revision of the CPU and SMCU. 577 578What: /sys/devices/system/cpu/aarch32_el0 579Date: May 2021 580Contact: Linux ARM Kernel Mailing list <linux-arm-kernel@lists.infradead.org> 581Description: Identifies the subset of CPUs in the system that can execute 582 AArch32 (32-bit ARM) applications. If present, the same format as 583 /sys/devices/system/cpu/{offline,online,possible,present} is used. 584 If absent, then all or none of the CPUs can execute AArch32 585 applications and execve() will behave accordingly. 586 587What: /sys/devices/system/cpu/cpuX/cpu_capacity 588Date: December 2016 589Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org> 590Description: information about CPUs heterogeneity. 591 592 cpu_capacity: capacity of cpuX. 593 594What: /sys/devices/system/cpu/vulnerabilities 595 /sys/devices/system/cpu/vulnerabilities/gather_data_sampling 596 /sys/devices/system/cpu/vulnerabilities/indirect_target_selection 597 /sys/devices/system/cpu/vulnerabilities/itlb_multihit 598 /sys/devices/system/cpu/vulnerabilities/l1tf 599 /sys/devices/system/cpu/vulnerabilities/mds 600 /sys/devices/system/cpu/vulnerabilities/meltdown 601 /sys/devices/system/cpu/vulnerabilities/mmio_stale_data 602 /sys/devices/system/cpu/vulnerabilities/old_microcode 603 /sys/devices/system/cpu/vulnerabilities/reg_file_data_sampling 604 /sys/devices/system/cpu/vulnerabilities/retbleed 605 /sys/devices/system/cpu/vulnerabilities/spec_store_bypass 606 /sys/devices/system/cpu/vulnerabilities/spectre_v1 607 /sys/devices/system/cpu/vulnerabilities/spectre_v2 608 /sys/devices/system/cpu/vulnerabilities/srbds 609 /sys/devices/system/cpu/vulnerabilities/tsa 610 /sys/devices/system/cpu/vulnerabilities/tsx_async_abort 611 /sys/devices/system/cpu/vulnerabilities/vmscape 612Date: January 2018 613Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org> 614Description: Information about CPU vulnerabilities 615 616 The files are named after the code names of CPU 617 vulnerabilities. The output of those files reflects the 618 state of the CPUs in the system. Possible output values: 619 620 ================ ============================================== 621 "Not affected" CPU is not affected by the vulnerability 622 "Vulnerable" CPU is affected and no mitigation in effect 623 "Mitigation: $M" CPU is affected and mitigation $M is in effect 624 ================ ============================================== 625 626 See also: Documentation/admin-guide/hw-vuln/index.rst 627 628What: /sys/devices/system/cpu/smt 629 /sys/devices/system/cpu/smt/active 630 /sys/devices/system/cpu/smt/control 631Date: June 2018 632Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org> 633Description: Control Symmetric Multi Threading (SMT) 634 635 active: Tells whether SMT is active (enabled and siblings online) 636 637 control: Read/write interface to control SMT. Possible 638 values: 639 640 ================ ========================================= 641 "on" SMT is enabled 642 "off" SMT is disabled 643 "<N>" SMT is enabled with N threads per core. 644 "forceoff" SMT is force disabled. Cannot be changed. 645 "notsupported" SMT is not supported by the CPU 646 "notimplemented" SMT runtime toggling is not 647 implemented for the architecture 648 ================ ========================================= 649 650 If control status is "forceoff" or "notsupported" writes 651 are rejected. Note that enabling SMT on PowerPC skips 652 offline cores. 653 654What: /sys/devices/system/cpu/cpuX/power/energy_perf_bias 655Date: March 2019 656Contact: linux-pm@vger.kernel.org 657Description: Intel Energy and Performance Bias Hint (EPB) 658 659 EPB for the given CPU in a sliding scale 0 - 15, where a value 660 of 0 corresponds to a hint preference for highest performance 661 and a value of 15 corresponds to the maximum energy savings. 662 663 In order to change the EPB value for the CPU, write either 664 a number in the 0 - 15 sliding scale above, or one of the 665 strings: "performance", "balance-performance", "normal", 666 "balance-power", "power" (that represent values reflected by 667 their meaning), to this attribute. 668 669 This attribute is present for all online CPUs supporting the 670 Intel EPB feature. 671 672What: /sys/devices/system/cpu/umwait_control 673 /sys/devices/system/cpu/umwait_control/enable_c02 674 /sys/devices/system/cpu/umwait_control/max_time 675Date: May 2019 676Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org> 677Description: Umwait control 678 679 enable_c02: Read/write interface to control umwait C0.2 state 680 Read returns C0.2 state status: 681 0: C0.2 is disabled 682 1: C0.2 is enabled 683 684 Write 'y' or '1' or 'on' to enable C0.2 state. 685 Write 'n' or '0' or 'off' to disable C0.2 state. 686 687 The interface is case insensitive. 688 689 max_time: Read/write interface to control umwait maximum time 690 in TSC-quanta that the CPU can reside in either C0.1 691 or C0.2 state. The time is an unsigned 32-bit number. 692 Note that a value of zero means there is no limit. 693 Low order two bits must be zero. 694 695What: /sys/devices/system/cpu/sev 696 /sys/devices/system/cpu/sev/sev_status 697 /sys/devices/system/cpu/sev/vmpl 698Date: May 2024 699Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org> 700Description: Secure Encrypted Virtualization (SEV) information 701 702 This directory is only present when running as an SEV guest. 703 704 sev_status: Reports the value of the SEV_STATUS MSR which 705 enumerates the enabled features of an SEV 706 environment. 707 708 vmpl: Reports the Virtual Machine Privilege Level (VMPL) at which 709 the SEV-SNP guest is running. This file is only present 710 when running as an SEV-SNP guest. 711 712 713What: /sys/devices/system/cpu/svm 714Date: August 2019 715Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org> 716 Linux for PowerPC mailing list <linuxppc-dev@lists.ozlabs.org> 717Description: Secure Virtual Machine 718 719 If 1, it means the system is using the Protected Execution 720 Facility in POWER9 and newer processors. i.e., it is a Secure 721 Virtual Machine. 722 723What: /sys/devices/system/cpu/cpuX/purr 724Date: Apr 2005 725Contact: Linux for PowerPC mailing list <linuxppc-dev@lists.ozlabs.org> 726Description: PURR ticks for this CPU since the system boot. 727 728 The Processor Utilization Resources Register (PURR) is 729 a 64-bit counter which provides an estimate of the 730 resources used by the CPU thread. The contents of this 731 register increases monotonically. This sysfs interface 732 exposes the number of PURR ticks for cpuX. 733 734What: /sys/devices/system/cpu/cpuX/spurr 735Date: Dec 2006 736Contact: Linux for PowerPC mailing list <linuxppc-dev@lists.ozlabs.org> 737Description: SPURR ticks for this CPU since the system boot. 738 739 The Scaled Processor Utilization Resources Register 740 (SPURR) is a 64-bit counter that provides a frequency 741 invariant estimate of the resources used by the CPU 742 thread. The contents of this register increases 743 monotonically. This sysfs interface exposes the number 744 of SPURR ticks for cpuX. 745 746What: /sys/devices/system/cpu/cpuX/idle_purr 747Date: Apr 2020 748Contact: Linux for PowerPC mailing list <linuxppc-dev@lists.ozlabs.org> 749Description: PURR ticks for cpuX when it was idle. 750 751 This sysfs interface exposes the number of PURR ticks 752 for cpuX when it was idle. 753 754What: /sys/devices/system/cpu/cpuX/idle_spurr 755Date: Apr 2020 756Contact: Linux for PowerPC mailing list <linuxppc-dev@lists.ozlabs.org> 757Description: SPURR ticks for cpuX when it was idle. 758 759 This sysfs interface exposes the number of SPURR ticks 760 for cpuX when it was idle. 761 762What: /sys/devices/system/cpu/cpuX/mte_tcf_preferred 763Date: July 2021 764Contact: Linux ARM Kernel Mailing list <linux-arm-kernel@lists.infradead.org> 765Description: Preferred MTE tag checking mode 766 767 When a user program specifies more than one MTE tag checking 768 mode, this sysfs node is used to specify which mode should 769 be preferred when scheduling a task on that CPU. Possible 770 values: 771 772 ================ ============================================== 773 "sync" Prefer synchronous mode 774 "asymm" Prefer asymmetric mode 775 "async" Prefer asynchronous mode 776 ================ ============================================== 777 778 See also: Documentation/arch/arm64/memory-tagging-extension.rst 779 780What: /sys/devices/system/cpu/nohz_full 781Date: Apr 2015 782Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org> 783Description: 784 (RO) the list of CPUs that are in nohz_full mode. 785 These CPUs are set by boot parameter "nohz_full=". 786 787What: /sys/devices/system/cpu/isolated 788Date: Apr 2015 789Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org> 790Description: 791 (RO) the list of CPUs that are isolated and don't 792 participate in load balancing. These CPUs are set by 793 boot parameter "isolcpus=". 794 795What: /sys/devices/system/cpu/housekeeping 796Date: Oct 2025 797Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org> 798Description: 799 (RO) the list of logical CPUs that are designated by the kernel as 800 "housekeeping". Each CPU are responsible for handling essential 801 system-wide background tasks, including RCU callbacks, delayed 802 timer callbacks, and unbound workqueues, minimizing scheduling 803 jitter on low-latency, isolated CPUs. These CPUs are set when boot 804 parameter "isolcpus=nohz" or "nohz_full=" is specified. 805 806What: /sys/devices/system/cpu/crash_hotplug 807Date: Aug 2023 808Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org> 809Description: 810 (RO) indicates whether or not the kernel updates relevant kexec 811 segments on memory hot un/plug and/or on/offline events, avoiding the 812 need to reload kdump kernel. 813 814What: /sys/devices/system/cpu/enabled 815Date: Nov 2022 816Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org> 817Description: 818 (RO) the list of CPUs that can be brought online. 819 820What: /sys/devices/system/cpu/preferred 821Date: Sep 2026 822Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org> 823Description: 824 (RO) the list of preferred CPUs applicable in 825 paravirtualized environments. 826 827 The steal governor driver dynamically adjusts this mask 828 based on observed steal time. Scheduling tasks on 829 CPUs outside of this list may lead to performance 830 degradations due to underlying physical CPU contention. 831 832 See Documentation/scheduler/sched-paravirt.rst for more details. 833