What:		/sys/devices/system/cpu/
Date:		pre-git history
Contact:	Linux kernel mailing list <linux-kernel@vger.kernel.org>
Description:
		A collection of both global and individual CPU attributes

		Individual CPU attributes are contained in subdirectories
		named by the kernel's logical CPU number, e.g.:

		/sys/devices/system/cpu/cpuX/

What:		/sys/devices/system/cpu/kernel_max
		/sys/devices/system/cpu/offline
		/sys/devices/system/cpu/online
		/sys/devices/system/cpu/possible
		/sys/devices/system/cpu/present
Date:		December 2008
Contact:	Linux kernel mailing list <linux-kernel@vger.kernel.org>
Description:	CPU topology files that describe kernel limits related to
		hotplug. Briefly:

		kernel_max: the maximum cpu index allowed by the kernel
		configuration.

		offline: cpus that are not online because they have been
		HOTPLUGGED off or exceed the limit of cpus allowed by the
		kernel configuration (kernel_max above).

		online: cpus that are online and being scheduled.

		possible: cpus that have been allocated resources and can be
		brought online if they are present.

		present: cpus that have been identified as being present in
		the system.

		See Documentation/admin-guide/cputopology.rst for more information.


What:		/sys/devices/system/cpu/probe
		/sys/devices/system/cpu/release
Date:		November 2009
Contact:	Linux kernel mailing list <linux-kernel@vger.kernel.org>
Description:	Dynamic addition and removal of CPU's.  This is not hotplug
		removal, this is meant complete removal/addition of the CPU
		from the system.

		probe: writes to this file will dynamically add a CPU to the
		system.  Information written to the file to add CPU's is
		architecture specific.

		release: writes to this file dynamically remove a CPU from
		the system.  Information written to the file to remove CPU's
		is architecture specific.

What:		/sys/devices/system/cpu/cpuX/node
Date:		October 2009
Contact:	Linux memory management mailing list <linux-mm@kvack.org>
Description:	Discover NUMA node a CPU belongs to

		When CONFIG_NUMA is enabled, a symbolic link that points
		to the corresponding NUMA node directory.

		For example, the following symlink is created for cpu42
		in NUMA node 2:

		/sys/devices/system/cpu/cpu42/node2 -> ../../node/node2


What:		/sys/devices/system/cpu/cpuX/topology/core_siblings
		/sys/devices/system/cpu/cpuX/topology/core_siblings_list
		/sys/devices/system/cpu/cpuX/topology/physical_package_id
		/sys/devices/system/cpu/cpuX/topology/thread_siblings
		/sys/devices/system/cpu/cpuX/topology/thread_siblings_list
		/sys/devices/system/cpu/cpuX/topology/ppin
Date:		December 2008
Contact:	Linux kernel mailing list <linux-kernel@vger.kernel.org>
Description:	CPU topology files that describe a logical CPU's relationship
		to other cores and threads in the same physical package.

		One cpuX directory is created per logical CPU in the system,
		e.g. /sys/devices/system/cpu/cpu42/.

		Briefly, the files above are:

		core_siblings: internal kernel map of cpuX's hardware threads
		within the same physical_package_id.

		core_siblings_list: human-readable list of the logical CPU
		numbers within the same physical_package_id as cpuX.

		physical_package_id: physical package id of cpuX. Typically
		corresponds to a physical socket number, but the actual value
		is architecture and platform dependent.

		thread_siblings: internal kernel map of cpuX's hardware
		threads within the same core as cpuX

		thread_siblings_list: human-readable list of cpuX's hardware
		threads within the same core as cpuX

		ppin: human-readable Protected Processor Identification
		Number of the socket the cpu# belongs to. There should be
		one per physical_package_id. File is readable only to
		admin.

		See Documentation/admin-guide/cputopology.rst for more information.


What:		/sys/devices/system/cpu/cpuidle/available_governors
		/sys/devices/system/cpu/cpuidle/current_driver
		/sys/devices/system/cpu/cpuidle/current_governor
		/sys/devices/system/cpu/cpuidle/current_governer_ro
		/sys/devices/system/cpu/cpuidle/intel_c1_demotion
Date:		September 2007
Contact:	Linux kernel mailing list <linux-kernel@vger.kernel.org>
Description:	Discover cpuidle policy and mechanism

		Various CPUs today support multiple idle levels that are
		differentiated by varying exit latencies and power
		consumption during idle.

		Idle policy (governor) is differentiated from idle mechanism
		(driver).

		available_governors: (RO) displays a space separated list of
		available governors.

		current_driver: (RO) displays current idle mechanism.

		current_governor: (RW) displays current idle policy. Users can
		switch the governor at runtime by writing to this file.

		current_governor_ro: (RO) displays current idle policy.

		intel_c1_demotion: (RW) enables/disables the C1 demotion
		feature on Intel CPUs.

		See Documentation/admin-guide/pm/cpuidle.rst,
		Documentation/admin-guide/pm/intel_idle.rst, and
		Documentation/driver-api/pm/cpuidle.rst for more information.


What:		/sys/devices/system/cpu/cpuX/cpuidle/state<N>/name
		/sys/devices/system/cpu/cpuX/cpuidle/stateN/latency
		/sys/devices/system/cpu/cpuX/cpuidle/stateN/power
		/sys/devices/system/cpu/cpuX/cpuidle/stateN/time
		/sys/devices/system/cpu/cpuX/cpuidle/stateN/usage
		/sys/devices/system/cpu/cpuX/cpuidle/stateN/above
		/sys/devices/system/cpu/cpuX/cpuidle/stateN/below
Date:		September 2007
KernelVersion:	v2.6.24
Contact:	Linux power management list <linux-pm@vger.kernel.org>
Description:
		The directory /sys/devices/system/cpu/cpuX/cpuidle contains per
		logical CPU specific cpuidle information for each online cpu X.
		The processor idle states which are available for use have the
		following attributes:

		======== ==== =================================================
		name:	 (RO) Name of the idle state (string).

		latency: (RO) The latency to exit out of this idle state (in
			      microseconds).

		power:   (RO) The power consumed while in this idle state (in
			      milliwatts).

		time:    (RO) The total time spent in this idle state
			      (in microseconds).

		usage:	 (RO) Number of times this state was entered (a count).

		above:	 (RO) Number of times this state was entered, but the
			      observed CPU idle duration was too short for it
			      (a count).

		below:	 (RO) Number of times this state was entered, but the
			      observed CPU idle duration was too long for it
			      (a count).
		======== ==== =================================================

What:		/sys/devices/system/cpu/cpuX/cpuidle/state<N>/desc
Date:		February 2008
KernelVersion:	v2.6.25
Contact:	Linux power management list <linux-pm@vger.kernel.org>
Description:
		(RO) A small description about the idle state (string).


What:		/sys/devices/system/cpu/cpuX/cpuidle/state<N>/disable
Date:		March 2012
KernelVersion:	v3.10
Contact:	Linux power management list <linux-pm@vger.kernel.org>
Description:
		(RW) Option to disable this idle state (bool). The behavior and
		the effect of the disable variable depends on the implementation
		of a particular governor. In the ladder governor, for example,
		it is not coherent, i.e. if one is disabling a light state, then
		all deeper states are disabled as well, but the disable variable
		does not reflect it. Likewise, if one enables a deep state but a
		lighter state still is disabled, then this has no effect.

What:		/sys/devices/system/cpu/cpuX/cpuidle/state<N>/default_status
Date:		December 2019
KernelVersion:	v5.6
Contact:	Linux power management list <linux-pm@vger.kernel.org>
Description:
		(RO) The default status of this state, "enabled" or "disabled".

What:		/sys/devices/system/cpu/cpuX/cpuidle/state<N>/residency
Date:		March 2014
KernelVersion:	v3.15
Contact:	Linux power management list <linux-pm@vger.kernel.org>
Description:
		(RO) Display the target residency i.e. the minimum amount of
		time (in microseconds) this cpu should spend in this idle state
		to make the transition worth the effort.

What:		/sys/devices/system/cpu/cpuX/cpuidle/state<N>/s2idle/
Date:		March 2018
KernelVersion:	v4.17
Contact:	Linux power management list <linux-pm@vger.kernel.org>
Description:
		Idle state usage statistics related to suspend-to-idle.

		This attribute group is only present for states that can be
		used in suspend-to-idle with suspended timekeeping.

What:		/sys/devices/system/cpu/cpuX/cpuidle/state<N>/s2idle/time
Date:		March 2018
KernelVersion:	v4.17
Contact:	Linux power management list <linux-pm@vger.kernel.org>
Description:
		Total time spent by the CPU in suspend-to-idle (with scheduler
		tick suspended) after requesting this state.

What:		/sys/devices/system/cpu/cpuX/cpuidle/state<N>/s2idle/usage
Date:		March 2018
KernelVersion:	v4.17
Contact:	Linux power management list <linux-pm@vger.kernel.org>
Description:
		Total number of times this state has been requested by the CPU
		while entering suspend-to-idle.

What:		/sys/devices/system/cpu/cpuX/cpufreq/*
Date:		pre-git history
Contact:	linux-pm@vger.kernel.org
Description:	Discover and change clock speed of CPUs

		Clock scaling allows you to change the clock speed of the
		CPUs on the fly. This is a nice method to save battery
		power, because the lower the clock speed, the less power
		the CPU consumes.

		There are many knobs to tweak in this directory.

		See files in Documentation/cpu-freq/ for more information.


What:		/sys/devices/system/cpu/cpuX/cpufreq/freqdomain_cpus
Date:		June 2013
Contact:	linux-pm@vger.kernel.org
Description:	Discover CPUs in the same CPU frequency coordination domain

		freqdomain_cpus is the list of CPUs (online+offline) that share
		the same clock/freq domain (possibly at the hardware level).
		That information may be hidden from the cpufreq core and the
		value of related_cpus may be different from freqdomain_cpus. This
		attribute is useful for user space DVFS controllers to get better
		power/performance results for platforms using acpi-cpufreq.

		This file is only present if the acpi-cpufreq or the cppc-cpufreq
		drivers are in use.

What:		/sys/devices/system/cpu/cpuX/cpufreq/auto_select
Date:		May 2025
Contact:	linux-pm@vger.kernel.org
Description:	Autonomous selection enable

		Read/write interface to control autonomous selection enable
			Read returns autonomous selection status:
				0: autonomous selection is disabled
				1: autonomous selection is enabled

			Write 'y' or '1' or 'on' to enable autonomous selection.
			Write 'n' or '0' or 'off' to disable autonomous selection.

		This file is only present if the cppc-cpufreq driver is in use.

What:		/sys/devices/system/cpu/cpuX/cpufreq/auto_act_window
Date:		May 2025
Contact:	linux-pm@vger.kernel.org
Description:	Autonomous activity window

		This file indicates a moving utilization sensitivity window to
		the platform's autonomous selection policy.

		Read/write an integer represents autonomous activity window (in
		microseconds) from/to this file. The max value to write is
		1270000000 but the max significand is 127. This means that if 128
		is written to this file, 127 will be stored. If the value is
		greater than 130, only the first two digits will be saved as
		significand.

		Writing a zero value to this file enable the platform to
		determine an appropriate Activity Window depending on the workload.

		Writing to this file only has meaning when Autonomous Selection is
		enabled.

		This file is only present if the cppc-cpufreq driver is in use.

What:		/sys/devices/system/cpu/cpuX/cpufreq/energy_performance_preference_val
Date:		May 2025
Contact:	linux-pm@vger.kernel.org
Description:	Energy performance preference

		Read/write an 8-bit integer from/to this file. This file
		represents a range of values from 0 (performance preference) to
		0xFF (energy efficiency preference) that influences the rate of
		performance increase/decrease and the result of the hardware's
		energy efficiency and performance optimization policies.

		Writing to this file only has meaning when Autonomous Selection is
		enabled.

		This file is only present if the cppc-cpufreq driver is in use.

What:		/sys/devices/system/cpu/cpuX/cpufreq/perf_limited
Date:		February 2026
Contact:	linux-pm@vger.kernel.org
Description:	Performance Limited

		Read to check if platform throttling (thermal/power/current
		limits) caused delivered performance to fall below the
		requested level. A non-zero value indicates throttling occurred.

		Write the bitmask of bits to clear:

		  - 0x1 = clear bit 0 (desired performance excursion)
		  - 0x2 = clear bit 1 (minimum performance excursion)
		  - 0x3 = clear both bits

		The platform sets these bits; OSPM can only clear them.

		This file is only present if the cppc-cpufreq driver is in use.

What:		/sys/devices/system/cpu/cpu*/cache/index3/cache_disable_{0,1}
Date:		August 2008
KernelVersion:	2.6.27
Contact:	Linux kernel mailing list <linux-kernel@vger.kernel.org>
Description:	Disable L3 cache indices

		These files exist in every CPU's cache/index3 directory. Each
		cache_disable_{0,1} file corresponds to one disable slot which
		can be used to disable a cache index. Reading from these files
		on a processor with this functionality will return the currently
		disabled index for that node. There is one L3 structure per
		node, or per internal node on MCM machines. Writing a valid
		index to one of these files will cause the specified cache
		index to be disabled.

		All AMD processors with L3 caches provide this functionality.
		For details, see BKDGs at
                https://www.amd.com/en/support/tech-docs?keyword=bios+kernel


What:		/sys/devices/system/cpu/cpufreq/boost
Date:		August 2012
Contact:	Linux kernel mailing list <linux-kernel@vger.kernel.org>
Description:	Processor frequency boosting control

		This switch controls the boost setting for the whole system.
		Boosting allows the CPU and the firmware to run at a frequency
		beyond its nominal limit.

		More details can be found in
		Documentation/admin-guide/pm/cpufreq.rst


What:		/sys/devices/system/cpu/cpuX/crash_notes
		/sys/devices/system/cpu/cpuX/crash_notes_size
Date:		April 2013
Contact:	kexec@lists.infradead.org
Description:	address and size of the percpu note.

		crash_notes: the physical address of the memory that holds the
		note of cpuX.

		crash_notes_size: size of the note of cpuX.


What:		/sys/devices/system/cpu/intel_pstate/max_perf_pct
		/sys/devices/system/cpu/intel_pstate/min_perf_pct
		/sys/devices/system/cpu/intel_pstate/no_turbo
Date:		February 2013
Contact:	linux-pm@vger.kernel.org
Description:	Parameters for the Intel P-state driver

		Logic for selecting the current P-state in Intel
		Sandybridge+ processors. The three knobs control
		limits for the P-state that will be requested by the
		driver.

		max_perf_pct: limits the maximum P state that will be requested by
		the driver stated as a percentage of the available performance.

		min_perf_pct: limits the minimum P state that will be requested by
		the driver stated as a percentage of the available performance.

		no_turbo: limits the driver to selecting P states below the turbo
		frequency range.

		More details can be found in
		Documentation/admin-guide/pm/intel_pstate.rst

What:		/sys/devices/system/cpu/cpu*/cache/index*/<set_of_attributes_mentioned_below>
Date:		July 2014(documented, existed before August 2008)
Contact:	Sudeep Holla <sudeep.holla@arm.com>
		Linux kernel mailing list <linux-kernel@vger.kernel.org>
Description:	Parameters for the CPU cache attributes

		allocation_policy:
			- WriteAllocate:
					allocate a memory location to a cache line
					on a cache miss because of a write
			- ReadAllocate:
					allocate a memory location to a cache line
					on a cache miss because of a read
			- ReadWriteAllocate:
					both writeallocate and readallocate

		coherency_line_size:
				     the minimum amount of data in bytes that gets
				     transferred from memory to cache

		level:
			the cache hierarchy in the multi-level cache configuration

		number_of_sets:
				total number of sets in the cache, a set is a
				collection of cache lines with the same cache index

		physical_line_partition:
				number of physical cache line per cache tag

		shared_cpu_list:
				the list of logical cpus sharing the cache

		shared_cpu_map:
				logical cpu mask containing the list of cpus sharing
				the cache

		size:
			the total cache size in kB

		type:
			- Instruction: cache that only holds instructions
			- Data: cache that only caches data
			- Unified: cache that holds both data and instructions

		ways_of_associativity:
			degree of freedom in placing a particular block
			of memory in the cache

		write_policy:
			- WriteThrough:
					data is written to both the cache line
					and to the block in the lower-level memory
			- WriteBack:
				     data is written only to the cache line and
				     the modified cache line is written to main
				     memory only when it is replaced


What:		/sys/devices/system/cpu/cpu*/cache/index*/id
Date:		September 2016
Contact:	Linux kernel mailing list <linux-kernel@vger.kernel.org>
Description:	Cache id

		The id provides a unique number for a specific instance of
		a cache of a particular type. E.g. there may be a level
		3 unified cache on each socket in a server and we may
		assign them ids 0, 1, 2, ...

		Note that id value can be non-contiguous. E.g. level 1
		caches typically exist per core, but there may not be a
		power of two cores on a socket, so these caches may be
		numbered 0, 1, 2, 3, 4, 5, 8, 9, 10, ...

What:		/sys/devices/system/cpu/cpuX/cpufreq/throttle_stats
		/sys/devices/system/cpu/cpuX/cpufreq/throttle_stats/turbo_stat
		/sys/devices/system/cpu/cpuX/cpufreq/throttle_stats/sub_turbo_stat
		/sys/devices/system/cpu/cpuX/cpufreq/throttle_stats/unthrottle
		/sys/devices/system/cpu/cpuX/cpufreq/throttle_stats/powercap
		/sys/devices/system/cpu/cpuX/cpufreq/throttle_stats/overtemp
		/sys/devices/system/cpu/cpuX/cpufreq/throttle_stats/supply_fault
		/sys/devices/system/cpu/cpuX/cpufreq/throttle_stats/overcurrent
		/sys/devices/system/cpu/cpuX/cpufreq/throttle_stats/occ_reset
Date:		March 2016
Contact:	Linux kernel mailing list <linux-kernel@vger.kernel.org>
		Linux for PowerPC mailing list <linuxppc-dev@lists.ozlabs.org>
Description:	POWERNV CPUFreq driver's frequency throttle stats directory and
		attributes

		'cpuX/cpufreq/throttle_stats' directory contains the CPU frequency
		throttle stat attributes for the chip. The throttle stats of a cpu
		is common across all the cpus belonging to a chip. Below are the
		throttle attributes exported in the 'throttle_stats' directory:

		- turbo_stat : This file gives the total number of times the max
		  frequency is throttled to lower frequency in turbo (at and above
		  nominal frequency) range of frequencies.

		- sub_turbo_stat : This file gives the total number of times the
		  max frequency is throttled to lower frequency in sub-turbo(below
		  nominal frequency) range of frequencies.

		- unthrottle : This file gives the total number of times the max
		  frequency is unthrottled after being throttled.

		- powercap : This file gives the total number of times the max
		  frequency is throttled due to 'Power Capping'.

		- overtemp : This file gives the total number of times the max
		  frequency is throttled due to 'CPU Over Temperature'.

		- supply_fault : This file gives the total number of times the
		  max frequency is throttled due to 'Power Supply Failure'.

		- overcurrent : This file gives the total number of times the
		  max frequency is throttled due to 'Overcurrent'.

		- occ_reset : This file gives the total number of times the max
		  frequency is throttled due to 'OCC Reset'.

		The sysfs attributes representing different throttle reasons like
		powercap, overtemp, supply_fault, overcurrent and occ_reset map to
		the reasons provided by OCC firmware for throttling the frequency.

What:		/sys/devices/system/cpu/cpufreq/policyX/throttle_stats
		/sys/devices/system/cpu/cpufreq/policyX/throttle_stats/turbo_stat
		/sys/devices/system/cpu/cpufreq/policyX/throttle_stats/sub_turbo_stat
		/sys/devices/system/cpu/cpufreq/policyX/throttle_stats/unthrottle
		/sys/devices/system/cpu/cpufreq/policyX/throttle_stats/powercap
		/sys/devices/system/cpu/cpufreq/policyX/throttle_stats/overtemp
		/sys/devices/system/cpu/cpufreq/policyX/throttle_stats/supply_fault
		/sys/devices/system/cpu/cpufreq/policyX/throttle_stats/overcurrent
		/sys/devices/system/cpu/cpufreq/policyX/throttle_stats/occ_reset
Date:		March 2016
Contact:	Linux kernel mailing list <linux-kernel@vger.kernel.org>
		Linux for PowerPC mailing list <linuxppc-dev@lists.ozlabs.org>
Description:	POWERNV CPUFreq driver's frequency throttle stats directory and
		attributes

		'policyX/throttle_stats' directory and all the attributes are same as
		the /sys/devices/system/cpu/cpuX/cpufreq/throttle_stats directory and
		attributes which give the frequency throttle information of the chip.

What:		/sys/devices/system/cpu/cpuX/regs/
		/sys/devices/system/cpu/cpuX/regs/identification/
		/sys/devices/system/cpu/cpuX/regs/identification/midr_el1
		/sys/devices/system/cpu/cpuX/regs/identification/revidr_el1
		/sys/devices/system/cpu/cpuX/regs/identification/aidr_el1
		/sys/devices/system/cpu/cpuX/regs/identification/smidr_el1
Date:		June 2016
Contact:	Linux ARM Kernel Mailing list <linux-arm-kernel@lists.infradead.org>
Description:	AArch64 CPU registers

		'identification' directory exposes the CPU ID registers for
		identifying model and revision of the CPU and SMCU.

What:		/sys/devices/system/cpu/aarch32_el0
Date:		May 2021
Contact:	Linux ARM Kernel Mailing list <linux-arm-kernel@lists.infradead.org>
Description:	Identifies the subset of CPUs in the system that can execute
		AArch32 (32-bit ARM) applications. If present, the same format as
		/sys/devices/system/cpu/{offline,online,possible,present} is used.
		If absent, then all or none of the CPUs can execute AArch32
		applications and execve() will behave accordingly.

What:		/sys/devices/system/cpu/cpuX/cpu_capacity
Date:		December 2016
Contact:	Linux kernel mailing list <linux-kernel@vger.kernel.org>
Description:	information about CPUs heterogeneity.

		cpu_capacity: capacity of cpuX.

What:		/sys/devices/system/cpu/vulnerabilities
		/sys/devices/system/cpu/vulnerabilities/gather_data_sampling
		/sys/devices/system/cpu/vulnerabilities/indirect_target_selection
		/sys/devices/system/cpu/vulnerabilities/itlb_multihit
		/sys/devices/system/cpu/vulnerabilities/l1tf
		/sys/devices/system/cpu/vulnerabilities/mds
		/sys/devices/system/cpu/vulnerabilities/meltdown
		/sys/devices/system/cpu/vulnerabilities/mmio_stale_data
		/sys/devices/system/cpu/vulnerabilities/old_microcode
		/sys/devices/system/cpu/vulnerabilities/reg_file_data_sampling
		/sys/devices/system/cpu/vulnerabilities/retbleed
		/sys/devices/system/cpu/vulnerabilities/spec_store_bypass
		/sys/devices/system/cpu/vulnerabilities/spectre_v1
		/sys/devices/system/cpu/vulnerabilities/spectre_v2
		/sys/devices/system/cpu/vulnerabilities/srbds
		/sys/devices/system/cpu/vulnerabilities/tsa
		/sys/devices/system/cpu/vulnerabilities/tsx_async_abort
		/sys/devices/system/cpu/vulnerabilities/vmscape
Date:		January 2018
Contact:	Linux kernel mailing list <linux-kernel@vger.kernel.org>
Description:	Information about CPU vulnerabilities

		The files are named after the code names of CPU
		vulnerabilities. The output of those files reflects the
		state of the CPUs in the system. Possible output values:

		================  ==============================================
		"Not affected"	  CPU is not affected by the vulnerability
		"Vulnerable"	  CPU is affected and no mitigation in effect
		"Mitigation: $M"  CPU is affected and mitigation $M is in effect
		================  ==============================================

		See also: Documentation/admin-guide/hw-vuln/index.rst

What:		/sys/devices/system/cpu/smt
		/sys/devices/system/cpu/smt/active
		/sys/devices/system/cpu/smt/control
Date:		June 2018
Contact:	Linux kernel mailing list <linux-kernel@vger.kernel.org>
Description:	Control Symmetric Multi Threading (SMT)

		active:  Tells whether SMT is active (enabled and siblings online)

		control: Read/write interface to control SMT. Possible
			 values:

			 ================ =========================================
			 "on"		  SMT is enabled
			 "off"		  SMT is disabled
			 "<N>"		  SMT is enabled with N threads per core.
			 "forceoff"	  SMT is force disabled. Cannot be changed.
			 "notsupported"   SMT is not supported by the CPU
			 "notimplemented" SMT runtime toggling is not
					  implemented for the architecture
			 ================ =========================================

			 If control status is "forceoff" or "notsupported" writes
			 are rejected. Note that enabling SMT on PowerPC skips
			 offline cores.

What:		/sys/devices/system/cpu/cpuX/power/energy_perf_bias
Date:		March 2019
Contact:	linux-pm@vger.kernel.org
Description:	Intel Energy and Performance Bias Hint (EPB)

		EPB for the given CPU in a sliding scale 0 - 15, where a value
		of 0 corresponds to a hint preference for highest performance
		and a value of 15 corresponds to the maximum energy savings.

		In order to change the EPB value for the CPU, write either
		a number in the 0 - 15 sliding scale above, or one of the
		strings: "performance", "balance-performance", "normal",
		"balance-power", "power" (that represent values reflected by
		their meaning), to this attribute.

		This attribute is present for all online CPUs supporting the
		Intel EPB feature.

What:		/sys/devices/system/cpu/umwait_control
		/sys/devices/system/cpu/umwait_control/enable_c02
		/sys/devices/system/cpu/umwait_control/max_time
Date:		May 2019
Contact:	Linux kernel mailing list <linux-kernel@vger.kernel.org>
Description:	Umwait control

		enable_c02: Read/write interface to control umwait C0.2 state
			Read returns C0.2 state status:
				0: C0.2 is disabled
				1: C0.2 is enabled

			Write 'y' or '1'  or 'on' to enable C0.2 state.
			Write 'n' or '0'  or 'off' to disable C0.2 state.

			The interface is case insensitive.

		max_time: Read/write interface to control umwait maximum time
			  in TSC-quanta that the CPU can reside in either C0.1
			  or C0.2 state. The time is an unsigned 32-bit number.
			  Note that a value of zero means there is no limit.
			  Low order two bits must be zero.

What:		/sys/devices/system/cpu/sev
		/sys/devices/system/cpu/sev/vmpl
Date:		May 2024
Contact:	Linux kernel mailing list <linux-kernel@vger.kernel.org>
Description:	Secure Encrypted Virtualization (SEV) information

		This directory is only present when running as an SEV-SNP guest.

		vmpl: Reports the Virtual Machine Privilege Level (VMPL) at which
		      the SEV-SNP guest is running.


What:		/sys/devices/system/cpu/svm
Date:		August 2019
Contact:	Linux kernel mailing list <linux-kernel@vger.kernel.org>
		Linux for PowerPC mailing list <linuxppc-dev@lists.ozlabs.org>
Description:	Secure Virtual Machine

		If 1, it means the system is using the Protected Execution
		Facility in POWER9 and newer processors. i.e., it is a Secure
		Virtual Machine.

What:		/sys/devices/system/cpu/cpuX/purr
Date:		Apr 2005
Contact:	Linux for PowerPC mailing list <linuxppc-dev@lists.ozlabs.org>
Description:	PURR ticks for this CPU since the system boot.

		The Processor Utilization Resources Register (PURR) is
		a 64-bit counter which provides an estimate of the
		resources used by the CPU thread. The contents of this
		register increases monotonically. This sysfs interface
		exposes the number of PURR ticks for cpuX.

What: 		/sys/devices/system/cpu/cpuX/spurr
Date:		Dec 2006
Contact:	Linux for PowerPC mailing list <linuxppc-dev@lists.ozlabs.org>
Description:	SPURR ticks for this CPU since the system boot.

		The Scaled Processor Utilization Resources Register
		(SPURR) is a 64-bit counter that provides a frequency
		invariant estimate of the resources used by the CPU
		thread. The contents of this register increases
		monotonically. This sysfs interface exposes the number
		of SPURR ticks for cpuX.

What: 		/sys/devices/system/cpu/cpuX/idle_purr
Date:		Apr 2020
Contact:	Linux for PowerPC mailing list <linuxppc-dev@lists.ozlabs.org>
Description:	PURR ticks for cpuX when it was idle.

		This sysfs interface exposes the number of PURR ticks
		for cpuX when it was idle.

What: 		/sys/devices/system/cpu/cpuX/idle_spurr
Date:		Apr 2020
Contact:	Linux for PowerPC mailing list <linuxppc-dev@lists.ozlabs.org>
Description:	SPURR ticks for cpuX when it was idle.

		This sysfs interface exposes the number of SPURR ticks
		for cpuX when it was idle.

What: 		/sys/devices/system/cpu/cpuX/mte_tcf_preferred
Date:		July 2021
Contact:	Linux ARM Kernel Mailing list <linux-arm-kernel@lists.infradead.org>
Description:	Preferred MTE tag checking mode

		When a user program specifies more than one MTE tag checking
		mode, this sysfs node is used to specify which mode should
		be preferred when scheduling a task on that CPU. Possible
		values:

		================  ==============================================
		"sync"	  	  Prefer synchronous mode
		"asymm"	  	  Prefer asymmetric mode
		"async"	  	  Prefer asynchronous mode
		================  ==============================================

		See also: Documentation/arch/arm64/memory-tagging-extension.rst

What:		/sys/devices/system/cpu/nohz_full
Date:		Apr 2015
Contact:	Linux kernel mailing list <linux-kernel@vger.kernel.org>
Description:
		(RO) the list of CPUs that are in nohz_full mode.
		These CPUs are set by boot parameter "nohz_full=".

What:		/sys/devices/system/cpu/isolated
Date:		Apr 2015
Contact:	Linux kernel mailing list <linux-kernel@vger.kernel.org>
Description:
		(RO) the list of CPUs that are isolated and don't
		participate in load balancing. These CPUs are set by
		boot parameter "isolcpus=".

What:		/sys/devices/system/cpu/housekeeping
Date:		Oct 2025
Contact:	Linux kernel mailing list <linux-kernel@vger.kernel.org>
Description:
		(RO) the list of logical CPUs that are designated by the kernel as
		"housekeeping". Each CPU are responsible for handling essential
		system-wide background tasks, including RCU callbacks, delayed
		timer callbacks, and unbound workqueues, minimizing scheduling
		jitter on low-latency, isolated CPUs. These CPUs are set when boot
		parameter "isolcpus=nohz" or "nohz_full=" is specified.

What:		/sys/devices/system/cpu/crash_hotplug
Date:		Aug 2023
Contact:	Linux kernel mailing list <linux-kernel@vger.kernel.org>
Description:
		(RO) indicates whether or not the kernel updates relevant kexec
		segments on memory hot un/plug and/or on/offline events, avoiding the
		need to reload kdump kernel.

What:		/sys/devices/system/cpu/enabled
Date:		Nov 2022
Contact:	Linux kernel mailing list <linux-kernel@vger.kernel.org>
Description:
		(RO) the list of CPUs that can be brought online.
