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
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.

		See Documentation/admin-guide/pm/cpuidle.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/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/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/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/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/tsx_async_abort
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/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.
