cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

sysfs-devices-system-cpu (26289B)


      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
     76		/sys/devices/system/cpu/cpuX/topology/ppin
     77Date:		December 2008
     78Contact:	Linux kernel mailing list <linux-kernel@vger.kernel.org>
     79Description:	CPU topology files that describe a logical CPU's relationship
     80		to other cores and threads in the same physical package.
     81
     82		One cpuX directory is created per logical CPU in the system,
     83		e.g. /sys/devices/system/cpu/cpu42/.
     84
     85		Briefly, the files above are:
     86
     87		core_id: the CPU core ID of cpuX. Typically it is the
     88		hardware platform's identifier (rather than the kernel's).
     89		The actual value is architecture and platform dependent.
     90
     91		core_siblings: internal kernel map of cpuX's hardware threads
     92		within the same physical_package_id.
     93
     94		core_siblings_list: human-readable list of the logical CPU
     95		numbers within the same physical_package_id as cpuX.
     96
     97		physical_package_id: physical package id of cpuX. Typically
     98		corresponds to a physical socket number, but the actual value
     99		is architecture and platform dependent.
    100
    101		thread_siblings: internal kernel map of cpuX's hardware
    102		threads within the same core as cpuX
    103
    104		thread_siblings_list: human-readable list of cpuX's hardware
    105		threads within the same core as cpuX
    106
    107		ppin: human-readable Protected Processor Identification
    108		Number of the socket the cpu# belongs to. There should be
    109		one per physical_package_id. File is readable only to
    110		admin.
    111
    112		See Documentation/admin-guide/cputopology.rst for more information.
    113
    114
    115What:		/sys/devices/system/cpu/cpuidle/available_governors
    116		/sys/devices/system/cpu/cpuidle/current_driver
    117		/sys/devices/system/cpu/cpuidle/current_governor
    118		/sys/devices/system/cpu/cpuidle/current_governer_ro
    119Date:		September 2007
    120Contact:	Linux kernel mailing list <linux-kernel@vger.kernel.org>
    121Description:	Discover cpuidle policy and mechanism
    122
    123		Various CPUs today support multiple idle levels that are
    124		differentiated by varying exit latencies and power
    125		consumption during idle.
    126
    127		Idle policy (governor) is differentiated from idle mechanism
    128		(driver).
    129
    130		available_governors: (RO) displays a space separated list of
    131		available governors.
    132
    133		current_driver: (RO) displays current idle mechanism.
    134
    135		current_governor: (RW) displays current idle policy. Users can
    136		switch the governor at runtime by writing to this file.
    137
    138		current_governor_ro: (RO) displays current idle policy.
    139
    140		See Documentation/admin-guide/pm/cpuidle.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
    276
    277What:		/sys/devices/system/cpu/cpu*/cache/index3/cache_disable_{0,1}
    278Date:		August 2008
    279KernelVersion:	2.6.27
    280Contact:	Linux kernel mailing list <linux-kernel@vger.kernel.org>
    281Description:	Disable L3 cache indices
    282
    283		These files exist in every CPU's cache/index3 directory. Each
    284		cache_disable_{0,1} file corresponds to one disable slot which
    285		can be used to disable a cache index. Reading from these files
    286		on a processor with this functionality will return the currently
    287		disabled index for that node. There is one L3 structure per
    288		node, or per internal node on MCM machines. Writing a valid
    289		index to one of these files will cause the specified cache
    290		index to be disabled.
    291
    292		All AMD processors with L3 caches provide this functionality.
    293		For details, see BKDGs at
    294                https://www.amd.com/en/support/tech-docs?keyword=bios+kernel
    295
    296
    297What:		/sys/devices/system/cpu/cpufreq/boost
    298Date:		August 2012
    299Contact:	Linux kernel mailing list <linux-kernel@vger.kernel.org>
    300Description:	Processor frequency boosting control
    301
    302		This switch controls the boost setting for the whole system.
    303		Boosting allows the CPU and the firmware to run at a frequency
    304		beyond it's nominal limit.
    305
    306		More details can be found in
    307		Documentation/admin-guide/pm/cpufreq.rst
    308
    309
    310What:		/sys/devices/system/cpu/cpuX/crash_notes
    311		/sys/devices/system/cpu/cpuX/crash_notes_size
    312Date:		April 2013
    313Contact:	kexec@lists.infradead.org
    314Description:	address and size of the percpu note.
    315
    316		crash_notes: the physical address of the memory that holds the
    317		note of cpuX.
    318
    319		crash_notes_size: size of the note of cpuX.
    320
    321
    322What:		/sys/devices/system/cpu/intel_pstate/max_perf_pct
    323		/sys/devices/system/cpu/intel_pstate/min_perf_pct
    324		/sys/devices/system/cpu/intel_pstate/no_turbo
    325Date:		February 2013
    326Contact:	linux-pm@vger.kernel.org
    327Description:	Parameters for the Intel P-state driver
    328
    329		Logic for selecting the current P-state in Intel
    330		Sandybridge+ processors. The three knobs control
    331		limits for the P-state that will be requested by the
    332		driver.
    333
    334		max_perf_pct: limits the maximum P state that will be requested by
    335		the driver stated as a percentage of the available performance.
    336
    337		min_perf_pct: limits the minimum P state that will be requested by
    338		the driver stated as a percentage of the available performance.
    339
    340		no_turbo: limits the driver to selecting P states below the turbo
    341		frequency range.
    342
    343		More details can be found in
    344		Documentation/admin-guide/pm/intel_pstate.rst
    345
    346What:		/sys/devices/system/cpu/cpu*/cache/index*/<set_of_attributes_mentioned_below>
    347Date:		July 2014(documented, existed before August 2008)
    348Contact:	Sudeep Holla <sudeep.holla@arm.com>
    349		Linux kernel mailing list <linux-kernel@vger.kernel.org>
    350Description:	Parameters for the CPU cache attributes
    351
    352		allocation_policy:
    353			- WriteAllocate:
    354					allocate a memory location to a cache line
    355					on a cache miss because of a write
    356			- ReadAllocate:
    357					allocate a memory location to a cache line
    358					on a cache miss because of a read
    359			- ReadWriteAllocate:
    360					both writeallocate and readallocate
    361
    362		attributes:
    363			    LEGACY used only on IA64 and is same as write_policy
    364
    365		coherency_line_size:
    366				     the minimum amount of data in bytes that gets
    367				     transferred from memory to cache
    368
    369		level:
    370			the cache hierarchy in the multi-level cache configuration
    371
    372		number_of_sets:
    373				total number of sets in the cache, a set is a
    374				collection of cache lines with the same cache index
    375
    376		physical_line_partition:
    377				number of physical cache line per cache tag
    378
    379		shared_cpu_list:
    380				the list of logical cpus sharing the cache
    381
    382		shared_cpu_map:
    383				logical cpu mask containing the list of cpus sharing
    384				the cache
    385
    386		size:
    387			the total cache size in kB
    388
    389		type:
    390			- Instruction: cache that only holds instructions
    391			- Data: cache that only caches data
    392			- Unified: cache that holds both data and instructions
    393
    394		ways_of_associativity:
    395			degree of freedom in placing a particular block
    396			of memory in the cache
    397
    398		write_policy:
    399			- WriteThrough:
    400					data is written to both the cache line
    401					and to the block in the lower-level memory
    402			- WriteBack:
    403				     data is written only to the cache line and
    404				     the modified cache line is written to main
    405				     memory only when it is replaced
    406
    407
    408What:		/sys/devices/system/cpu/cpu*/cache/index*/id
    409Date:		September 2016
    410Contact:	Linux kernel mailing list <linux-kernel@vger.kernel.org>
    411Description:	Cache id
    412
    413		The id provides a unique number for a specific instance of
    414		a cache of a particular type. E.g. there may be a level
    415		3 unified cache on each socket in a server and we may
    416		assign them ids 0, 1, 2, ...
    417
    418		Note that id value can be non-contiguous. E.g. level 1
    419		caches typically exist per core, but there may not be a
    420		power of two cores on a socket, so these caches may be
    421		numbered 0, 1, 2, 3, 4, 5, 8, 9, 10, ...
    422
    423What:		/sys/devices/system/cpu/cpuX/cpufreq/throttle_stats
    424		/sys/devices/system/cpu/cpuX/cpufreq/throttle_stats/turbo_stat
    425		/sys/devices/system/cpu/cpuX/cpufreq/throttle_stats/sub_turbo_stat
    426		/sys/devices/system/cpu/cpuX/cpufreq/throttle_stats/unthrottle
    427		/sys/devices/system/cpu/cpuX/cpufreq/throttle_stats/powercap
    428		/sys/devices/system/cpu/cpuX/cpufreq/throttle_stats/overtemp
    429		/sys/devices/system/cpu/cpuX/cpufreq/throttle_stats/supply_fault
    430		/sys/devices/system/cpu/cpuX/cpufreq/throttle_stats/overcurrent
    431		/sys/devices/system/cpu/cpuX/cpufreq/throttle_stats/occ_reset
    432Date:		March 2016
    433Contact:	Linux kernel mailing list <linux-kernel@vger.kernel.org>
    434		Linux for PowerPC mailing list <linuxppc-dev@ozlabs.org>
    435Description:	POWERNV CPUFreq driver's frequency throttle stats directory and
    436		attributes
    437
    438		'cpuX/cpufreq/throttle_stats' directory contains the CPU frequency
    439		throttle stat attributes for the chip. The throttle stats of a cpu
    440		is common across all the cpus belonging to a chip. Below are the
    441		throttle attributes exported in the 'throttle_stats' directory:
    442
    443		- turbo_stat : This file gives the total number of times the max
    444		  frequency is throttled to lower frequency in turbo (at and above
    445		  nominal frequency) range of frequencies.
    446
    447		- sub_turbo_stat : This file gives the total number of times the
    448		  max frequency is throttled to lower frequency in sub-turbo(below
    449		  nominal frequency) range of frequencies.
    450
    451		- unthrottle : This file gives the total number of times the max
    452		  frequency is unthrottled after being throttled.
    453
    454		- powercap : This file gives the total number of times the max
    455		  frequency is throttled due to 'Power Capping'.
    456
    457		- overtemp : This file gives the total number of times the max
    458		  frequency is throttled due to 'CPU Over Temperature'.
    459
    460		- supply_fault : This file gives the total number of times the
    461		  max frequency is throttled due to 'Power Supply Failure'.
    462
    463		- overcurrent : This file gives the total number of times the
    464		  max frequency is throttled due to 'Overcurrent'.
    465
    466		- occ_reset : This file gives the total number of times the max
    467		  frequency is throttled due to 'OCC Reset'.
    468
    469		The sysfs attributes representing different throttle reasons like
    470		powercap, overtemp, supply_fault, overcurrent and occ_reset map to
    471		the reasons provided by OCC firmware for throttling the frequency.
    472
    473What:		/sys/devices/system/cpu/cpufreq/policyX/throttle_stats
    474		/sys/devices/system/cpu/cpufreq/policyX/throttle_stats/turbo_stat
    475		/sys/devices/system/cpu/cpufreq/policyX/throttle_stats/sub_turbo_stat
    476		/sys/devices/system/cpu/cpufreq/policyX/throttle_stats/unthrottle
    477		/sys/devices/system/cpu/cpufreq/policyX/throttle_stats/powercap
    478		/sys/devices/system/cpu/cpufreq/policyX/throttle_stats/overtemp
    479		/sys/devices/system/cpu/cpufreq/policyX/throttle_stats/supply_fault
    480		/sys/devices/system/cpu/cpufreq/policyX/throttle_stats/overcurrent
    481		/sys/devices/system/cpu/cpufreq/policyX/throttle_stats/occ_reset
    482Date:		March 2016
    483Contact:	Linux kernel mailing list <linux-kernel@vger.kernel.org>
    484		Linux for PowerPC mailing list <linuxppc-dev@ozlabs.org>
    485Description:	POWERNV CPUFreq driver's frequency throttle stats directory and
    486		attributes
    487
    488		'policyX/throttle_stats' directory and all the attributes are same as
    489		the /sys/devices/system/cpu/cpuX/cpufreq/throttle_stats directory and
    490		attributes which give the frequency throttle information of the chip.
    491
    492What:		/sys/devices/system/cpu/cpuX/regs/
    493		/sys/devices/system/cpu/cpuX/regs/identification/
    494		/sys/devices/system/cpu/cpuX/regs/identification/midr_el1
    495		/sys/devices/system/cpu/cpuX/regs/identification/revidr_el1
    496Date:		June 2016
    497Contact:	Linux ARM Kernel Mailing list <linux-arm-kernel@lists.infradead.org>
    498Description:	AArch64 CPU registers
    499
    500		'identification' directory exposes the CPU ID registers for
    501		identifying model and revision of the CPU.
    502
    503What:		/sys/devices/system/cpu/aarch32_el0
    504Date:		May 2021
    505Contact:	Linux ARM Kernel Mailing list <linux-arm-kernel@lists.infradead.org>
    506Description:	Identifies the subset of CPUs in the system that can execute
    507		AArch32 (32-bit ARM) applications. If present, the same format as
    508		/sys/devices/system/cpu/{offline,online,possible,present} is used.
    509		If absent, then all or none of the CPUs can execute AArch32
    510		applications and execve() will behave accordingly.
    511
    512What:		/sys/devices/system/cpu/cpuX/cpu_capacity
    513Date:		December 2016
    514Contact:	Linux kernel mailing list <linux-kernel@vger.kernel.org>
    515Description:	information about CPUs heterogeneity.
    516
    517		cpu_capacity: capacity of cpuX.
    518
    519What:		/sys/devices/system/cpu/vulnerabilities
    520		/sys/devices/system/cpu/vulnerabilities/meltdown
    521		/sys/devices/system/cpu/vulnerabilities/spectre_v1
    522		/sys/devices/system/cpu/vulnerabilities/spectre_v2
    523		/sys/devices/system/cpu/vulnerabilities/spec_store_bypass
    524		/sys/devices/system/cpu/vulnerabilities/l1tf
    525		/sys/devices/system/cpu/vulnerabilities/mds
    526		/sys/devices/system/cpu/vulnerabilities/srbds
    527		/sys/devices/system/cpu/vulnerabilities/tsx_async_abort
    528		/sys/devices/system/cpu/vulnerabilities/itlb_multihit
    529		/sys/devices/system/cpu/vulnerabilities/mmio_stale_data
    530Date:		January 2018
    531Contact:	Linux kernel mailing list <linux-kernel@vger.kernel.org>
    532Description:	Information about CPU vulnerabilities
    533
    534		The files are named after the code names of CPU
    535		vulnerabilities. The output of those files reflects the
    536		state of the CPUs in the system. Possible output values:
    537
    538		================  ==============================================
    539		"Not affected"	  CPU is not affected by the vulnerability
    540		"Vulnerable"	  CPU is affected and no mitigation in effect
    541		"Mitigation: $M"  CPU is affected and mitigation $M is in effect
    542		================  ==============================================
    543
    544		See also: Documentation/admin-guide/hw-vuln/index.rst
    545
    546What:		/sys/devices/system/cpu/smt
    547		/sys/devices/system/cpu/smt/active
    548		/sys/devices/system/cpu/smt/control
    549Date:		June 2018
    550Contact:	Linux kernel mailing list <linux-kernel@vger.kernel.org>
    551Description:	Control Symmetric Multi Threading (SMT)
    552
    553		active:  Tells whether SMT is active (enabled and siblings online)
    554
    555		control: Read/write interface to control SMT. Possible
    556			 values:
    557
    558			 ================ =========================================
    559			 "on"		  SMT is enabled
    560			 "off"		  SMT is disabled
    561			 "forceoff"	  SMT is force disabled. Cannot be changed.
    562			 "notsupported"   SMT is not supported by the CPU
    563			 "notimplemented" SMT runtime toggling is not
    564					  implemented for the architecture
    565			 ================ =========================================
    566
    567			 If control status is "forceoff" or "notsupported" writes
    568			 are rejected.
    569
    570What:		/sys/devices/system/cpu/cpuX/power/energy_perf_bias
    571Date:		March 2019
    572Contact:	linux-pm@vger.kernel.org
    573Description:	Intel Energy and Performance Bias Hint (EPB)
    574
    575		EPB for the given CPU in a sliding scale 0 - 15, where a value
    576		of 0 corresponds to a hint preference for highest performance
    577		and a value of 15 corresponds to the maximum energy savings.
    578
    579		In order to change the EPB value for the CPU, write either
    580		a number in the 0 - 15 sliding scale above, or one of the
    581		strings: "performance", "balance-performance", "normal",
    582		"balance-power", "power" (that represent values reflected by
    583		their meaning), to this attribute.
    584
    585		This attribute is present for all online CPUs supporting the
    586		Intel EPB feature.
    587
    588What:		/sys/devices/system/cpu/umwait_control
    589		/sys/devices/system/cpu/umwait_control/enable_c02
    590		/sys/devices/system/cpu/umwait_control/max_time
    591Date:		May 2019
    592Contact:	Linux kernel mailing list <linux-kernel@vger.kernel.org>
    593Description:	Umwait control
    594
    595		enable_c02: Read/write interface to control umwait C0.2 state
    596			Read returns C0.2 state status:
    597				0: C0.2 is disabled
    598				1: C0.2 is enabled
    599
    600			Write 'y' or '1'  or 'on' to enable C0.2 state.
    601			Write 'n' or '0'  or 'off' to disable C0.2 state.
    602
    603			The interface is case insensitive.
    604
    605		max_time: Read/write interface to control umwait maximum time
    606			  in TSC-quanta that the CPU can reside in either C0.1
    607			  or C0.2 state. The time is an unsigned 32-bit number.
    608			  Note that a value of zero means there is no limit.
    609			  Low order two bits must be zero.
    610
    611What:		/sys/devices/system/cpu/svm
    612Date:		August 2019
    613Contact:	Linux kernel mailing list <linux-kernel@vger.kernel.org>
    614		Linux for PowerPC mailing list <linuxppc-dev@ozlabs.org>
    615Description:	Secure Virtual Machine
    616
    617		If 1, it means the system is using the Protected Execution
    618		Facility in POWER9 and newer processors. i.e., it is a Secure
    619		Virtual Machine.
    620
    621What:		/sys/devices/system/cpu/cpuX/purr
    622Date:		Apr 2005
    623Contact:	Linux for PowerPC mailing list <linuxppc-dev@ozlabs.org>
    624Description:	PURR ticks for this CPU since the system boot.
    625
    626		The Processor Utilization Resources Register (PURR) is
    627		a 64-bit counter which provides an estimate of the
    628		resources used by the CPU thread. The contents of this
    629		register increases monotonically. This sysfs interface
    630		exposes the number of PURR ticks for cpuX.
    631
    632What: 		/sys/devices/system/cpu/cpuX/spurr
    633Date:		Dec 2006
    634Contact:	Linux for PowerPC mailing list <linuxppc-dev@ozlabs.org>
    635Description:	SPURR ticks for this CPU since the system boot.
    636
    637		The Scaled Processor Utilization Resources Register
    638		(SPURR) is a 64-bit counter that provides a frequency
    639		invariant estimate of the resources used by the CPU
    640		thread. The contents of this register increases
    641		monotonically. This sysfs interface exposes the number
    642		of SPURR ticks for cpuX.
    643
    644What: 		/sys/devices/system/cpu/cpuX/idle_purr
    645Date:		Apr 2020
    646Contact:	Linux for PowerPC mailing list <linuxppc-dev@ozlabs.org>
    647Description:	PURR ticks for cpuX when it was idle.
    648
    649		This sysfs interface exposes the number of PURR ticks
    650		for cpuX when it was idle.
    651
    652What: 		/sys/devices/system/cpu/cpuX/idle_spurr
    653Date:		Apr 2020
    654Contact:	Linux for PowerPC mailing list <linuxppc-dev@ozlabs.org>
    655Description:	SPURR ticks for cpuX when it was idle.
    656
    657		This sysfs interface exposes the number of SPURR ticks
    658		for cpuX when it was idle.
    659
    660What: 		/sys/devices/system/cpu/cpuX/mte_tcf_preferred
    661Date:		July 2021
    662Contact:	Linux ARM Kernel Mailing list <linux-arm-kernel@lists.infradead.org>
    663Description:	Preferred MTE tag checking mode
    664
    665		When a user program specifies more than one MTE tag checking
    666		mode, this sysfs node is used to specify which mode should
    667		be preferred when scheduling a task on that CPU. Possible
    668		values:
    669
    670		================  ==============================================
    671		"sync"	  	  Prefer synchronous mode
    672		"asymm"	  	  Prefer asymmetric mode
    673		"async"	  	  Prefer asynchronous mode
    674		================  ==============================================
    675
    676		See also: Documentation/arm64/memory-tagging-extension.rst
    677
    678What:		/sys/devices/system/cpu/nohz_full
    679Date:		Apr 2015
    680Contact:	Linux kernel mailing list <linux-kernel@vger.kernel.org>
    681Description:
    682		(RO) the list of CPUs that are in nohz_full mode.
    683		These CPUs are set by boot parameter "nohz_full=".
    684
    685What:		/sys/devices/system/cpu/isolated
    686Date:		Apr 2015
    687Contact:	Linux kernel mailing list <linux-kernel@vger.kernel.org>
    688Description:
    689		(RO) the list of CPUs that are isolated and don't
    690		participate in load balancing. These CPUs are set by
    691		boot parameter "isolcpus=".