2009-10-22 11:45:20 +08:00
|
|
|
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/cpu#/
|
|
|
|
|
2009-10-22 11:45:25 +08:00
|
|
|
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.
|
|
|
|
|
2019-06-28 01:56:51 +08:00
|
|
|
See Documentation/admin-guide/cputopology.rst for more information.
|
2009-10-22 11:45:25 +08:00
|
|
|
|
|
|
|
|
2009-11-26 01:23:25 +08:00
|
|
|
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 writtento the file to remove CPU's
|
|
|
|
is architecture specific.
|
2009-10-22 12:15:30 +08:00
|
|
|
|
2009-12-15 09:59:09 +08:00
|
|
|
What: /sys/devices/system/cpu/cpu#/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
|
|
|
|
|
|
|
|
|
2009-10-22 11:45:31 +08:00
|
|
|
What: /sys/devices/system/cpu/cpu#/topology/core_id
|
|
|
|
/sys/devices/system/cpu/cpu#/topology/core_siblings
|
|
|
|
/sys/devices/system/cpu/cpu#/topology/core_siblings_list
|
|
|
|
/sys/devices/system/cpu/cpu#/topology/physical_package_id
|
|
|
|
/sys/devices/system/cpu/cpu#/topology/thread_siblings
|
|
|
|
/sys/devices/system/cpu/cpu#/topology/thread_siblings_list
|
|
|
|
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 cpu# directory is created per logical CPU in the system,
|
|
|
|
e.g. /sys/devices/system/cpu/cpu42/.
|
|
|
|
|
|
|
|
Briefly, the files above are:
|
|
|
|
|
|
|
|
core_id: the CPU core ID of cpu#. Typically it is the
|
|
|
|
hardware platform's identifier (rather than the kernel's).
|
|
|
|
The actual value is architecture and platform dependent.
|
|
|
|
|
|
|
|
core_siblings: internal kernel map of cpu#'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 cpu#.
|
|
|
|
|
|
|
|
physical_package_id: physical package id of cpu#. Typically
|
|
|
|
corresponds to a physical socket number, but the actual value
|
|
|
|
is architecture and platform dependent.
|
|
|
|
|
|
|
|
thread_siblings: internel kernel map of cpu#'s hardware
|
|
|
|
threads within the same core as cpu#
|
|
|
|
|
|
|
|
thread_siblings_list: human-readable list of cpu#'s hardware
|
|
|
|
threads within the same core as cpu#
|
|
|
|
|
2019-06-28 01:56:51 +08:00
|
|
|
See Documentation/admin-guide/cputopology.rst for more information.
|
2009-10-22 11:45:31 +08:00
|
|
|
|
|
|
|
|
2009-10-22 11:45:41 +08:00
|
|
|
What: /sys/devices/system/cpu/cpuidle/current_driver
|
|
|
|
/sys/devices/system/cpu/cpuidle/current_governer_ro
|
2018-02-07 21:34:36 +08:00
|
|
|
/sys/devices/system/cpu/cpuidle/available_governors
|
|
|
|
/sys/devices/system/cpu/cpuidle/current_governor
|
2009-10-22 11:45:41 +08:00
|
|
|
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)
|
|
|
|
|
2018-02-07 21:34:36 +08:00
|
|
|
current_driver: (RO) displays current idle mechanism
|
2009-10-22 11:45:41 +08:00
|
|
|
|
2018-02-07 21:34:36 +08:00
|
|
|
current_governor_ro: (RO) displays current idle policy
|
|
|
|
|
|
|
|
With the cpuidle_sysfs_switch boot option enabled (meant for
|
|
|
|
developer testing), the following three attributes are visible
|
|
|
|
instead:
|
|
|
|
|
|
|
|
current_driver: same as described above
|
|
|
|
|
|
|
|
available_governors: (RO) displays a space separated list of
|
|
|
|
available governors
|
|
|
|
|
|
|
|
current_governor: (RW) displays current idle policy. Users can
|
|
|
|
switch the governor at runtime by writing to this file.
|
2009-10-22 11:45:41 +08:00
|
|
|
|
2019-06-08 02:54:17 +08:00
|
|
|
See Documentation/admin-guide/pm/cpuidle.rst and
|
|
|
|
Documentation/driver-api/pm/cpuidle.rst for more information.
|
2009-10-22 11:45:41 +08:00
|
|
|
|
|
|
|
|
2018-02-07 21:34:36 +08:00
|
|
|
What: /sys/devices/system/cpu/cpuX/cpuidle/stateN/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
|
2018-12-10 19:30:23 +08:00
|
|
|
/sys/devices/system/cpu/cpuX/cpuidle/stateN/above
|
|
|
|
/sys/devices/system/cpu/cpuX/cpuidle/stateN/below
|
2018-02-07 21:34:36 +08:00
|
|
|
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).
|
|
|
|
|
2018-12-10 19:30:23 +08:00
|
|
|
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).
|
2018-02-07 21:34:36 +08:00
|
|
|
|
|
|
|
What: /sys/devices/system/cpu/cpuX/cpuidle/stateN/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/stateN/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/stateN/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.
|
|
|
|
|
2018-03-14 19:27:21 +08:00
|
|
|
What: /sys/devices/system/cpu/cpuX/cpuidle/stateN/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/stateN/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/stateN/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.
|
2018-02-07 21:34:36 +08:00
|
|
|
|
2009-10-22 11:45:46 +08:00
|
|
|
What: /sys/devices/system/cpu/cpu#/cpufreq/*
|
|
|
|
Date: pre-git history
|
2014-04-22 13:12:05 +08:00
|
|
|
Contact: linux-pm@vger.kernel.org
|
2009-10-22 11:45:46 +08:00
|
|
|
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.
|
|
|
|
|
|
|
|
|
2013-06-27 15:08:54 +08:00
|
|
|
What: /sys/devices/system/cpu/cpu#/cpufreq/freqdomain_cpus
|
|
|
|
Date: June 2013
|
2014-04-22 13:12:05 +08:00
|
|
|
Contact: linux-pm@vger.kernel.org
|
2013-06-27 15:08:54 +08:00
|
|
|
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 driver is in use.
|
|
|
|
|
|
|
|
|
2011-05-16 21:39:48 +08:00
|
|
|
What: /sys/devices/system/cpu/cpu*/cache/index3/cache_disable_{0,1}
|
|
|
|
Date: August 2008
|
2009-04-09 21:31:53 +08:00
|
|
|
KernelVersion: 2.6.27
|
2015-05-18 16:07:16 +08:00
|
|
|
Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org>
|
2011-05-16 21:39:48 +08:00
|
|
|
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 specificed cache
|
|
|
|
index to be disabled.
|
|
|
|
|
|
|
|
All AMD processors with L3 caches provide this functionality.
|
|
|
|
For details, see BKDGs at
|
|
|
|
http://developer.amd.com/documentation/guides/Pages/default.aspx
|
2012-09-04 16:28:07 +08:00
|
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
beyound it's nominal limit.
|
2017-10-11 01:36:16 +08:00
|
|
|
More details can be found in
|
|
|
|
Documentation/admin-guide/pm/cpufreq.rst
|
2013-03-28 16:16:45 +08:00
|
|
|
|
|
|
|
|
|
|
|
What: /sys/devices/system/cpu/cpu#/crash_notes
|
|
|
|
/sys/devices/system/cpu/cpu#/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 cpu#.
|
|
|
|
|
|
|
|
crash_notes_size: size of the note of cpu#.
|
2014-01-06 20:54:26 +08:00
|
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
2017-10-11 01:36:16 +08:00
|
|
|
More details can be found in
|
|
|
|
Documentation/admin-guide/pm/intel_pstate.rst
|
2014-09-30 21:48:25 +08:00
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
attributes: LEGACY used only on IA64 and is same as write_policy
|
|
|
|
|
|
|
|
coherency_line_size: the minimum amount of data in bytes that gets
|
|
|
|
transferred from memory to cache
|
|
|
|
|
2015-05-08 21:45:34 +08:00
|
|
|
level: the cache hierarchy in the multi-level cache configuration
|
2014-09-30 21:48:25 +08:00
|
|
|
|
|
|
|
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
|
2016-03-22 21:27:09 +08:00
|
|
|
|
2016-10-22 21:19:48 +08:00
|
|
|
|
|
|
|
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, ...
|
|
|
|
|
2016-03-22 21:27:09 +08:00
|
|
|
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@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@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.
|
2016-07-08 23:01:13 +08:00
|
|
|
|
|
|
|
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
|
|
|
|
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.
|
2017-03-27 21:18:18 +08:00
|
|
|
|
|
|
|
What: /sys/devices/system/cpu/cpu#/cpu_capacity
|
|
|
|
Date: December 2016
|
|
|
|
Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org>
|
|
|
|
Description: information about CPUs heterogeneity.
|
|
|
|
|
|
|
|
cpu_capacity: capacity of cpu#.
|
2018-01-08 05:48:00 +08:00
|
|
|
|
|
|
|
What: /sys/devices/system/cpu/vulnerabilities
|
|
|
|
/sys/devices/system/cpu/vulnerabilities/meltdown
|
|
|
|
/sys/devices/system/cpu/vulnerabilities/spectre_v1
|
|
|
|
/sys/devices/system/cpu/vulnerabilities/spectre_v2
|
2018-04-26 10:04:20 +08:00
|
|
|
/sys/devices/system/cpu/vulnerabilities/spec_store_bypass
|
x86/bugs, kvm: Introduce boot-time control of L1TF mitigations
Introduce the 'l1tf=' kernel command line option to allow for boot-time
switching of mitigation that is used on processors affected by L1TF.
The possible values are:
full
Provides all available mitigations for the L1TF vulnerability. Disables
SMT and enables all mitigations in the hypervisors. SMT control via
/sys/devices/system/cpu/smt/control is still possible after boot.
Hypervisors will issue a warning when the first VM is started in
a potentially insecure configuration, i.e. SMT enabled or L1D flush
disabled.
full,force
Same as 'full', but disables SMT control. Implies the 'nosmt=force'
command line option. sysfs control of SMT and the hypervisor flush
control is disabled.
flush
Leaves SMT enabled and enables the conditional hypervisor mitigation.
Hypervisors will issue a warning when the first VM is started in a
potentially insecure configuration, i.e. SMT enabled or L1D flush
disabled.
flush,nosmt
Disables SMT and enables the conditional hypervisor mitigation. SMT
control via /sys/devices/system/cpu/smt/control is still possible
after boot. If SMT is reenabled or flushing disabled at runtime
hypervisors will issue a warning.
flush,nowarn
Same as 'flush', but hypervisors will not warn when
a VM is started in a potentially insecure configuration.
off
Disables hypervisor mitigations and doesn't emit any warnings.
Default is 'flush'.
Let KVM adhere to these semantics, which means:
- 'lt1f=full,force' : Performe L1D flushes. No runtime control
possible.
- 'l1tf=full'
- 'l1tf-flush'
- 'l1tf=flush,nosmt' : Perform L1D flushes and warn on VM start if
SMT has been runtime enabled or L1D flushing
has been run-time enabled
- 'l1tf=flush,nowarn' : Perform L1D flushes and no warnings are emitted.
- 'l1tf=off' : L1D flushes are not performed and no warnings
are emitted.
KVM can always override the L1D flushing behavior using its 'vmentry_l1d_flush'
module parameter except when lt1f=full,force is set.
This makes KVM's private 'nosmt' option redundant, and as it is a bit
non-systematic anyway (this is something to control globally, not on
hypervisor level), remove that option.
Add the missing Documentation entry for the l1tf vulnerability sysfs file
while at it.
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Jiri Kosina <jkosina@suse.cz>
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Reviewed-by: Josh Poimboeuf <jpoimboe@redhat.com>
Link: https://lkml.kernel.org/r/20180713142323.202758176@linutronix.de
2018-07-13 22:23:25 +08:00
|
|
|
/sys/devices/system/cpu/vulnerabilities/l1tf
|
2019-02-19 05:51:43 +08:00
|
|
|
/sys/devices/system/cpu/vulnerabilities/mds
|
2018-01-09 23:02:51 +08:00
|
|
|
Date: January 2018
|
2018-01-08 05:48:00 +08:00
|
|
|
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
|
2018-01-09 23:02:51 +08:00
|
|
|
"Mitigation: $M" CPU is affected and mitigation $M is in effect
|
2018-05-29 23:48:27 +08:00
|
|
|
|
2019-02-19 07:02:31 +08:00
|
|
|
See also: Documentation/admin-guide/hw-vuln/index.rst
|
x86/bugs, kvm: Introduce boot-time control of L1TF mitigations
Introduce the 'l1tf=' kernel command line option to allow for boot-time
switching of mitigation that is used on processors affected by L1TF.
The possible values are:
full
Provides all available mitigations for the L1TF vulnerability. Disables
SMT and enables all mitigations in the hypervisors. SMT control via
/sys/devices/system/cpu/smt/control is still possible after boot.
Hypervisors will issue a warning when the first VM is started in
a potentially insecure configuration, i.e. SMT enabled or L1D flush
disabled.
full,force
Same as 'full', but disables SMT control. Implies the 'nosmt=force'
command line option. sysfs control of SMT and the hypervisor flush
control is disabled.
flush
Leaves SMT enabled and enables the conditional hypervisor mitigation.
Hypervisors will issue a warning when the first VM is started in a
potentially insecure configuration, i.e. SMT enabled or L1D flush
disabled.
flush,nosmt
Disables SMT and enables the conditional hypervisor mitigation. SMT
control via /sys/devices/system/cpu/smt/control is still possible
after boot. If SMT is reenabled or flushing disabled at runtime
hypervisors will issue a warning.
flush,nowarn
Same as 'flush', but hypervisors will not warn when
a VM is started in a potentially insecure configuration.
off
Disables hypervisor mitigations and doesn't emit any warnings.
Default is 'flush'.
Let KVM adhere to these semantics, which means:
- 'lt1f=full,force' : Performe L1D flushes. No runtime control
possible.
- 'l1tf=full'
- 'l1tf-flush'
- 'l1tf=flush,nosmt' : Perform L1D flushes and warn on VM start if
SMT has been runtime enabled or L1D flushing
has been run-time enabled
- 'l1tf=flush,nowarn' : Perform L1D flushes and no warnings are emitted.
- 'l1tf=off' : L1D flushes are not performed and no warnings
are emitted.
KVM can always override the L1D flushing behavior using its 'vmentry_l1d_flush'
module parameter except when lt1f=full,force is set.
This makes KVM's private 'nosmt' option redundant, and as it is a bit
non-systematic anyway (this is something to control globally, not on
hypervisor level), remove that option.
Add the missing Documentation entry for the l1tf vulnerability sysfs file
while at it.
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Jiri Kosina <jkosina@suse.cz>
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Reviewed-by: Josh Poimboeuf <jpoimboe@redhat.com>
Link: https://lkml.kernel.org/r/20180713142323.202758176@linutronix.de
2018-07-13 22:23:25 +08:00
|
|
|
|
2018-05-29 23:48:27 +08:00
|
|
|
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 Symetric Multi Threading (SMT)
|
|
|
|
|
|
|
|
active: Tells whether SMT is active (enabled and siblings online)
|
|
|
|
|
|
|
|
control: Read/write interface to control SMT. Possible
|
|
|
|
values:
|
|
|
|
|
2019-03-27 20:00:29 +08:00
|
|
|
"on" SMT is enabled
|
|
|
|
"off" SMT is disabled
|
|
|
|
"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
|
2018-05-29 23:48:27 +08:00
|
|
|
|
|
|
|
If control status is "forceoff" or "notsupported" writes
|
|
|
|
are rejected.
|
2019-03-22 06:20:17 +08:00
|
|
|
|
|
|
|
What: /sys/devices/system/cpu/cpu#/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.
|
2019-06-20 09:33:58 +08:00
|
|
|
|
|
|
|
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.
|
2019-08-20 10:13:21 +08:00
|
|
|
|
|
|
|
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@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.
|