sysfs-devices-system-cpu 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668
  1. What: /sys/devices/system/cpu/
  2. Date: pre-git history
  3. Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org>
  4. Description:
  5. A collection of both global and individual CPU attributes
  6. Individual CPU attributes are contained in subdirectories
  7. named by the kernel's logical CPU number, e.g.:
  8. /sys/devices/system/cpu/cpu#/
  9. What: /sys/devices/system/cpu/kernel_max
  10. /sys/devices/system/cpu/offline
  11. /sys/devices/system/cpu/online
  12. /sys/devices/system/cpu/possible
  13. /sys/devices/system/cpu/present
  14. Date: December 2008
  15. Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org>
  16. Description: CPU topology files that describe kernel limits related to
  17. hotplug. Briefly:
  18. kernel_max: the maximum cpu index allowed by the kernel
  19. configuration.
  20. offline: cpus that are not online because they have been
  21. HOTPLUGGED off or exceed the limit of cpus allowed by the
  22. kernel configuration (kernel_max above).
  23. online: cpus that are online and being scheduled.
  24. possible: cpus that have been allocated resources and can be
  25. brought online if they are present.
  26. present: cpus that have been identified as being present in
  27. the system.
  28. See Documentation/admin-guide/cputopology.rst for more information.
  29. What: /sys/devices/system/cpu/probe
  30. /sys/devices/system/cpu/release
  31. Date: November 2009
  32. Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org>
  33. Description: Dynamic addition and removal of CPU's. This is not hotplug
  34. removal, this is meant complete removal/addition of the CPU
  35. from the system.
  36. probe: writes to this file will dynamically add a CPU to the
  37. system. Information written to the file to add CPU's is
  38. architecture specific.
  39. release: writes to this file dynamically remove a CPU from
  40. the system. Information writtento the file to remove CPU's
  41. is architecture specific.
  42. What: /sys/devices/system/cpu/cpu#/node
  43. Date: October 2009
  44. Contact: Linux memory management mailing list <linux-mm@kvack.org>
  45. Description: Discover NUMA node a CPU belongs to
  46. When CONFIG_NUMA is enabled, a symbolic link that points
  47. to the corresponding NUMA node directory.
  48. For example, the following symlink is created for cpu42
  49. in NUMA node 2:
  50. /sys/devices/system/cpu/cpu42/node2 -> ../../node/node2
  51. What: /sys/devices/system/cpu/cpu#/topology/core_id
  52. /sys/devices/system/cpu/cpu#/topology/core_siblings
  53. /sys/devices/system/cpu/cpu#/topology/core_siblings_list
  54. /sys/devices/system/cpu/cpu#/topology/physical_package_id
  55. /sys/devices/system/cpu/cpu#/topology/thread_siblings
  56. /sys/devices/system/cpu/cpu#/topology/thread_siblings_list
  57. Date: December 2008
  58. Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org>
  59. Description: CPU topology files that describe a logical CPU's relationship
  60. to other cores and threads in the same physical package.
  61. One cpu# directory is created per logical CPU in the system,
  62. e.g. /sys/devices/system/cpu/cpu42/.
  63. Briefly, the files above are:
  64. core_id: the CPU core ID of cpu#. Typically it is the
  65. hardware platform's identifier (rather than the kernel's).
  66. The actual value is architecture and platform dependent.
  67. core_siblings: internal kernel map of cpu#'s hardware threads
  68. within the same physical_package_id.
  69. core_siblings_list: human-readable list of the logical CPU
  70. numbers within the same physical_package_id as cpu#.
  71. physical_package_id: physical package id of cpu#. Typically
  72. corresponds to a physical socket number, but the actual value
  73. is architecture and platform dependent.
  74. thread_siblings: internel kernel map of cpu#'s hardware
  75. threads within the same core as cpu#
  76. thread_siblings_list: human-readable list of cpu#'s hardware
  77. threads within the same core as cpu#
  78. See Documentation/admin-guide/cputopology.rst for more information.
  79. What: /sys/devices/system/cpu/cpuidle/available_governors
  80. /sys/devices/system/cpu/cpuidle/current_driver
  81. /sys/devices/system/cpu/cpuidle/current_governor
  82. /sys/devices/system/cpu/cpuidle/current_governer_ro
  83. Date: September 2007
  84. Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org>
  85. Description: Discover cpuidle policy and mechanism
  86. Various CPUs today support multiple idle levels that are
  87. differentiated by varying exit latencies and power
  88. consumption during idle.
  89. Idle policy (governor) is differentiated from idle mechanism
  90. (driver).
  91. available_governors: (RO) displays a space separated list of
  92. available governors.
  93. current_driver: (RO) displays current idle mechanism.
  94. current_governor: (RW) displays current idle policy. Users can
  95. switch the governor at runtime by writing to this file.
  96. current_governor_ro: (RO) displays current idle policy.
  97. See Documentation/admin-guide/pm/cpuidle.rst and
  98. Documentation/driver-api/pm/cpuidle.rst for more information.
  99. What: /sys/devices/system/cpu/cpuX/cpuidle/stateN/name
  100. /sys/devices/system/cpu/cpuX/cpuidle/stateN/latency
  101. /sys/devices/system/cpu/cpuX/cpuidle/stateN/power
  102. /sys/devices/system/cpu/cpuX/cpuidle/stateN/time
  103. /sys/devices/system/cpu/cpuX/cpuidle/stateN/usage
  104. /sys/devices/system/cpu/cpuX/cpuidle/stateN/above
  105. /sys/devices/system/cpu/cpuX/cpuidle/stateN/below
  106. Date: September 2007
  107. KernelVersion: v2.6.24
  108. Contact: Linux power management list <linux-pm@vger.kernel.org>
  109. Description:
  110. The directory /sys/devices/system/cpu/cpuX/cpuidle contains per
  111. logical CPU specific cpuidle information for each online cpu X.
  112. The processor idle states which are available for use have the
  113. following attributes:
  114. ======== ==== =================================================
  115. name: (RO) Name of the idle state (string).
  116. latency: (RO) The latency to exit out of this idle state (in
  117. microseconds).
  118. power: (RO) The power consumed while in this idle state (in
  119. milliwatts).
  120. time: (RO) The total time spent in this idle state
  121. (in microseconds).
  122. usage: (RO) Number of times this state was entered (a count).
  123. above: (RO) Number of times this state was entered, but the
  124. observed CPU idle duration was too short for it
  125. (a count).
  126. below: (RO) Number of times this state was entered, but the
  127. observed CPU idle duration was too long for it
  128. (a count).
  129. ======== ==== =================================================
  130. What: /sys/devices/system/cpu/cpuX/cpuidle/stateN/desc
  131. Date: February 2008
  132. KernelVersion: v2.6.25
  133. Contact: Linux power management list <linux-pm@vger.kernel.org>
  134. Description:
  135. (RO) A small description about the idle state (string).
  136. What: /sys/devices/system/cpu/cpuX/cpuidle/stateN/disable
  137. Date: March 2012
  138. KernelVersion: v3.10
  139. Contact: Linux power management list <linux-pm@vger.kernel.org>
  140. Description:
  141. (RW) Option to disable this idle state (bool). The behavior and
  142. the effect of the disable variable depends on the implementation
  143. of a particular governor. In the ladder governor, for example,
  144. it is not coherent, i.e. if one is disabling a light state, then
  145. all deeper states are disabled as well, but the disable variable
  146. does not reflect it. Likewise, if one enables a deep state but a
  147. lighter state still is disabled, then this has no effect.
  148. What: /sys/devices/system/cpu/cpuX/cpuidle/stateN/default_status
  149. Date: December 2019
  150. KernelVersion: v5.6
  151. Contact: Linux power management list <linux-pm@vger.kernel.org>
  152. Description:
  153. (RO) The default status of this state, "enabled" or "disabled".
  154. What: /sys/devices/system/cpu/cpuX/cpuidle/stateN/residency
  155. Date: March 2014
  156. KernelVersion: v3.15
  157. Contact: Linux power management list <linux-pm@vger.kernel.org>
  158. Description:
  159. (RO) Display the target residency i.e. the minimum amount of
  160. time (in microseconds) this cpu should spend in this idle state
  161. to make the transition worth the effort.
  162. What: /sys/devices/system/cpu/cpuX/cpuidle/stateN/s2idle/
  163. Date: March 2018
  164. KernelVersion: v4.17
  165. Contact: Linux power management list <linux-pm@vger.kernel.org>
  166. Description:
  167. Idle state usage statistics related to suspend-to-idle.
  168. This attribute group is only present for states that can be
  169. used in suspend-to-idle with suspended timekeeping.
  170. What: /sys/devices/system/cpu/cpuX/cpuidle/stateN/s2idle/time
  171. Date: March 2018
  172. KernelVersion: v4.17
  173. Contact: Linux power management list <linux-pm@vger.kernel.org>
  174. Description:
  175. Total time spent by the CPU in suspend-to-idle (with scheduler
  176. tick suspended) after requesting this state.
  177. What: /sys/devices/system/cpu/cpuX/cpuidle/stateN/s2idle/usage
  178. Date: March 2018
  179. KernelVersion: v4.17
  180. Contact: Linux power management list <linux-pm@vger.kernel.org>
  181. Description:
  182. Total number of times this state has been requested by the CPU
  183. while entering suspend-to-idle.
  184. What: /sys/devices/system/cpu/cpu#/cpufreq/*
  185. Date: pre-git history
  186. Contact: linux-pm@vger.kernel.org
  187. Description: Discover and change clock speed of CPUs
  188. Clock scaling allows you to change the clock speed of the
  189. CPUs on the fly. This is a nice method to save battery
  190. power, because the lower the clock speed, the less power
  191. the CPU consumes.
  192. There are many knobs to tweak in this directory.
  193. See files in Documentation/cpu-freq/ for more information.
  194. What: /sys/devices/system/cpu/cpu#/cpufreq/freqdomain_cpus
  195. Date: June 2013
  196. Contact: linux-pm@vger.kernel.org
  197. Description: Discover CPUs in the same CPU frequency coordination domain
  198. freqdomain_cpus is the list of CPUs (online+offline) that share
  199. the same clock/freq domain (possibly at the hardware level).
  200. That information may be hidden from the cpufreq core and the
  201. value of related_cpus may be different from freqdomain_cpus. This
  202. attribute is useful for user space DVFS controllers to get better
  203. power/performance results for platforms using acpi-cpufreq.
  204. This file is only present if the acpi-cpufreq driver is in use.
  205. What: /sys/devices/system/cpu/cpu*/cache/index3/cache_disable_{0,1}
  206. Date: August 2008
  207. KernelVersion: 2.6.27
  208. Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org>
  209. Description: Disable L3 cache indices
  210. These files exist in every CPU's cache/index3 directory. Each
  211. cache_disable_{0,1} file corresponds to one disable slot which
  212. can be used to disable a cache index. Reading from these files
  213. on a processor with this functionality will return the currently
  214. disabled index for that node. There is one L3 structure per
  215. node, or per internal node on MCM machines. Writing a valid
  216. index to one of these files will cause the specificed cache
  217. index to be disabled.
  218. All AMD processors with L3 caches provide this functionality.
  219. For details, see BKDGs at
  220. http://developer.amd.com/documentation/guides/Pages/default.aspx
  221. What: /sys/devices/system/cpu/cpufreq/boost
  222. Date: August 2012
  223. Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org>
  224. Description: Processor frequency boosting control
  225. This switch controls the boost setting for the whole system.
  226. Boosting allows the CPU and the firmware to run at a frequency
  227. beyound it's nominal limit.
  228. More details can be found in
  229. Documentation/admin-guide/pm/cpufreq.rst
  230. What: /sys/devices/system/cpu/cpu#/crash_notes
  231. /sys/devices/system/cpu/cpu#/crash_notes_size
  232. Date: April 2013
  233. Contact: kexec@lists.infradead.org
  234. Description: address and size of the percpu note.
  235. crash_notes: the physical address of the memory that holds the
  236. note of cpu#.
  237. crash_notes_size: size of the note of cpu#.
  238. What: /sys/devices/system/cpu/intel_pstate/max_perf_pct
  239. /sys/devices/system/cpu/intel_pstate/min_perf_pct
  240. /sys/devices/system/cpu/intel_pstate/no_turbo
  241. Date: February 2013
  242. Contact: linux-pm@vger.kernel.org
  243. Description: Parameters for the Intel P-state driver
  244. Logic for selecting the current P-state in Intel
  245. Sandybridge+ processors. The three knobs control
  246. limits for the P-state that will be requested by the
  247. driver.
  248. max_perf_pct: limits the maximum P state that will be requested by
  249. the driver stated as a percentage of the available performance.
  250. min_perf_pct: limits the minimum P state that will be requested by
  251. the driver stated as a percentage of the available performance.
  252. no_turbo: limits the driver to selecting P states below the turbo
  253. frequency range.
  254. More details can be found in
  255. Documentation/admin-guide/pm/intel_pstate.rst
  256. What: /sys/devices/system/cpu/cpu*/cache/index*/<set_of_attributes_mentioned_below>
  257. Date: July 2014(documented, existed before August 2008)
  258. Contact: Sudeep Holla <sudeep.holla@arm.com>
  259. Linux kernel mailing list <linux-kernel@vger.kernel.org>
  260. Description: Parameters for the CPU cache attributes
  261. allocation_policy:
  262. - WriteAllocate:
  263. allocate a memory location to a cache line
  264. on a cache miss because of a write
  265. - ReadAllocate:
  266. allocate a memory location to a cache line
  267. on a cache miss because of a read
  268. - ReadWriteAllocate:
  269. both writeallocate and readallocate
  270. attributes:
  271. LEGACY used only on IA64 and is same as write_policy
  272. coherency_line_size:
  273. the minimum amount of data in bytes that gets
  274. transferred from memory to cache
  275. level:
  276. the cache hierarchy in the multi-level cache configuration
  277. number_of_sets:
  278. total number of sets in the cache, a set is a
  279. collection of cache lines with the same cache index
  280. physical_line_partition:
  281. number of physical cache line per cache tag
  282. shared_cpu_list:
  283. the list of logical cpus sharing the cache
  284. shared_cpu_map:
  285. logical cpu mask containing the list of cpus sharing
  286. the cache
  287. size:
  288. the total cache size in kB
  289. type:
  290. - Instruction: cache that only holds instructions
  291. - Data: cache that only caches data
  292. - Unified: cache that holds both data and instructions
  293. ways_of_associativity:
  294. degree of freedom in placing a particular block
  295. of memory in the cache
  296. write_policy:
  297. - WriteThrough:
  298. data is written to both the cache line
  299. and to the block in the lower-level memory
  300. - WriteBack:
  301. data is written only to the cache line and
  302. the modified cache line is written to main
  303. memory only when it is replaced
  304. What: /sys/devices/system/cpu/cpu*/cache/index*/id
  305. Date: September 2016
  306. Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org>
  307. Description: Cache id
  308. The id provides a unique number for a specific instance of
  309. a cache of a particular type. E.g. there may be a level
  310. 3 unified cache on each socket in a server and we may
  311. assign them ids 0, 1, 2, ...
  312. Note that id value can be non-contiguous. E.g. level 1
  313. caches typically exist per core, but there may not be a
  314. power of two cores on a socket, so these caches may be
  315. numbered 0, 1, 2, 3, 4, 5, 8, 9, 10, ...
  316. What: /sys/devices/system/cpu/cpuX/cpufreq/throttle_stats
  317. /sys/devices/system/cpu/cpuX/cpufreq/throttle_stats/turbo_stat
  318. /sys/devices/system/cpu/cpuX/cpufreq/throttle_stats/sub_turbo_stat
  319. /sys/devices/system/cpu/cpuX/cpufreq/throttle_stats/unthrottle
  320. /sys/devices/system/cpu/cpuX/cpufreq/throttle_stats/powercap
  321. /sys/devices/system/cpu/cpuX/cpufreq/throttle_stats/overtemp
  322. /sys/devices/system/cpu/cpuX/cpufreq/throttle_stats/supply_fault
  323. /sys/devices/system/cpu/cpuX/cpufreq/throttle_stats/overcurrent
  324. /sys/devices/system/cpu/cpuX/cpufreq/throttle_stats/occ_reset
  325. Date: March 2016
  326. Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org>
  327. Linux for PowerPC mailing list <linuxppc-dev@ozlabs.org>
  328. Description: POWERNV CPUFreq driver's frequency throttle stats directory and
  329. attributes
  330. 'cpuX/cpufreq/throttle_stats' directory contains the CPU frequency
  331. throttle stat attributes for the chip. The throttle stats of a cpu
  332. is common across all the cpus belonging to a chip. Below are the
  333. throttle attributes exported in the 'throttle_stats' directory:
  334. - turbo_stat : This file gives the total number of times the max
  335. frequency is throttled to lower frequency in turbo (at and above
  336. nominal frequency) range of frequencies.
  337. - sub_turbo_stat : This file gives the total number of times the
  338. max frequency is throttled to lower frequency in sub-turbo(below
  339. nominal frequency) range of frequencies.
  340. - unthrottle : This file gives the total number of times the max
  341. frequency is unthrottled after being throttled.
  342. - powercap : This file gives the total number of times the max
  343. frequency is throttled due to 'Power Capping'.
  344. - overtemp : This file gives the total number of times the max
  345. frequency is throttled due to 'CPU Over Temperature'.
  346. - supply_fault : This file gives the total number of times the
  347. max frequency is throttled due to 'Power Supply Failure'.
  348. - overcurrent : This file gives the total number of times the
  349. max frequency is throttled due to 'Overcurrent'.
  350. - occ_reset : This file gives the total number of times the max
  351. frequency is throttled due to 'OCC Reset'.
  352. The sysfs attributes representing different throttle reasons like
  353. powercap, overtemp, supply_fault, overcurrent and occ_reset map to
  354. the reasons provided by OCC firmware for throttling the frequency.
  355. What: /sys/devices/system/cpu/cpufreq/policyX/throttle_stats
  356. /sys/devices/system/cpu/cpufreq/policyX/throttle_stats/turbo_stat
  357. /sys/devices/system/cpu/cpufreq/policyX/throttle_stats/sub_turbo_stat
  358. /sys/devices/system/cpu/cpufreq/policyX/throttle_stats/unthrottle
  359. /sys/devices/system/cpu/cpufreq/policyX/throttle_stats/powercap
  360. /sys/devices/system/cpu/cpufreq/policyX/throttle_stats/overtemp
  361. /sys/devices/system/cpu/cpufreq/policyX/throttle_stats/supply_fault
  362. /sys/devices/system/cpu/cpufreq/policyX/throttle_stats/overcurrent
  363. /sys/devices/system/cpu/cpufreq/policyX/throttle_stats/occ_reset
  364. Date: March 2016
  365. Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org>
  366. Linux for PowerPC mailing list <linuxppc-dev@ozlabs.org>
  367. Description: POWERNV CPUFreq driver's frequency throttle stats directory and
  368. attributes
  369. 'policyX/throttle_stats' directory and all the attributes are same as
  370. the /sys/devices/system/cpu/cpuX/cpufreq/throttle_stats directory and
  371. attributes which give the frequency throttle information of the chip.
  372. What: /sys/devices/system/cpu/cpuX/regs/
  373. /sys/devices/system/cpu/cpuX/regs/identification/
  374. /sys/devices/system/cpu/cpuX/regs/identification/midr_el1
  375. /sys/devices/system/cpu/cpuX/regs/identification/revidr_el1
  376. Date: June 2016
  377. Contact: Linux ARM Kernel Mailing list <linux-arm-kernel@lists.infradead.org>
  378. Description: AArch64 CPU registers
  379. 'identification' directory exposes the CPU ID registers for
  380. identifying model and revision of the CPU.
  381. What: /sys/devices/system/cpu/aarch32_el0
  382. Date: November 2020
  383. Contact: Linux ARM Kernel Mailing list <linux-arm-kernel@lists.infradead.org>
  384. Description: Identifies the subset of CPUs in the system that can execute
  385. AArch32 (32-bit ARM) applications. If present, the same format as
  386. /sys/devices/system/cpu/{offline,online,possible,present} is used.
  387. If absent, then all or none of the CPUs can execute AArch32
  388. applications and execve() will behave accordingly.
  389. What: /sys/devices/system/cpu/cpu#/cpu_capacity
  390. Date: December 2016
  391. Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org>
  392. Description: information about CPUs heterogeneity.
  393. cpu_capacity: capacity of cpu#.
  394. What: /sys/devices/system/cpu/vulnerabilities
  395. /sys/devices/system/cpu/vulnerabilities/meltdown
  396. /sys/devices/system/cpu/vulnerabilities/spectre_v1
  397. /sys/devices/system/cpu/vulnerabilities/spectre_v2
  398. /sys/devices/system/cpu/vulnerabilities/spec_store_bypass
  399. /sys/devices/system/cpu/vulnerabilities/l1tf
  400. /sys/devices/system/cpu/vulnerabilities/mds
  401. /sys/devices/system/cpu/vulnerabilities/srbds
  402. /sys/devices/system/cpu/vulnerabilities/tsx_async_abort
  403. /sys/devices/system/cpu/vulnerabilities/itlb_multihit
  404. Date: January 2018
  405. Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org>
  406. Description: Information about CPU vulnerabilities
  407. The files are named after the code names of CPU
  408. vulnerabilities. The output of those files reflects the
  409. state of the CPUs in the system. Possible output values:
  410. ================ ==============================================
  411. "Not affected" CPU is not affected by the vulnerability
  412. "Vulnerable" CPU is affected and no mitigation in effect
  413. "Mitigation: $M" CPU is affected and mitigation $M is in effect
  414. ================ ==============================================
  415. See also: Documentation/admin-guide/hw-vuln/index.rst
  416. What: /sys/devices/system/cpu/smt
  417. /sys/devices/system/cpu/smt/active
  418. /sys/devices/system/cpu/smt/control
  419. Date: June 2018
  420. Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org>
  421. Description: Control Symetric Multi Threading (SMT)
  422. active: Tells whether SMT is active (enabled and siblings online)
  423. control: Read/write interface to control SMT. Possible
  424. values:
  425. ================ =========================================
  426. "on" SMT is enabled
  427. "off" SMT is disabled
  428. "forceoff" SMT is force disabled. Cannot be changed.
  429. "notsupported" SMT is not supported by the CPU
  430. "notimplemented" SMT runtime toggling is not
  431. implemented for the architecture
  432. ================ =========================================
  433. If control status is "forceoff" or "notsupported" writes
  434. are rejected.
  435. What: /sys/devices/system/cpu/cpu#/power/energy_perf_bias
  436. Date: March 2019
  437. Contact: linux-pm@vger.kernel.org
  438. Description: Intel Energy and Performance Bias Hint (EPB)
  439. EPB for the given CPU in a sliding scale 0 - 15, where a value
  440. of 0 corresponds to a hint preference for highest performance
  441. and a value of 15 corresponds to the maximum energy savings.
  442. In order to change the EPB value for the CPU, write either
  443. a number in the 0 - 15 sliding scale above, or one of the
  444. strings: "performance", "balance-performance", "normal",
  445. "balance-power", "power" (that represent values reflected by
  446. their meaning), to this attribute.
  447. This attribute is present for all online CPUs supporting the
  448. Intel EPB feature.
  449. What: /sys/devices/system/cpu/umwait_control
  450. /sys/devices/system/cpu/umwait_control/enable_c02
  451. /sys/devices/system/cpu/umwait_control/max_time
  452. Date: May 2019
  453. Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org>
  454. Description: Umwait control
  455. enable_c02: Read/write interface to control umwait C0.2 state
  456. Read returns C0.2 state status:
  457. 0: C0.2 is disabled
  458. 1: C0.2 is enabled
  459. Write 'y' or '1' or 'on' to enable C0.2 state.
  460. Write 'n' or '0' or 'off' to disable C0.2 state.
  461. The interface is case insensitive.
  462. max_time: Read/write interface to control umwait maximum time
  463. in TSC-quanta that the CPU can reside in either C0.1
  464. or C0.2 state. The time is an unsigned 32-bit number.
  465. Note that a value of zero means there is no limit.
  466. Low order two bits must be zero.
  467. What: /sys/devices/system/cpu/svm
  468. Date: August 2019
  469. Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org>
  470. Linux for PowerPC mailing list <linuxppc-dev@ozlabs.org>
  471. Description: Secure Virtual Machine
  472. If 1, it means the system is using the Protected Execution
  473. Facility in POWER9 and newer processors. i.e., it is a Secure
  474. Virtual Machine.
  475. What: /sys/devices/system/cpu/cpuX/purr
  476. Date: Apr 2005
  477. Contact: Linux for PowerPC mailing list <linuxppc-dev@ozlabs.org>
  478. Description: PURR ticks for this CPU since the system boot.
  479. The Processor Utilization Resources Register (PURR) is
  480. a 64-bit counter which provides an estimate of the
  481. resources used by the CPU thread. The contents of this
  482. register increases monotonically. This sysfs interface
  483. exposes the number of PURR ticks for cpuX.
  484. What: /sys/devices/system/cpu/cpuX/spurr
  485. Date: Dec 2006
  486. Contact: Linux for PowerPC mailing list <linuxppc-dev@ozlabs.org>
  487. Description: SPURR ticks for this CPU since the system boot.
  488. The Scaled Processor Utilization Resources Register
  489. (SPURR) is a 64-bit counter that provides a frequency
  490. invariant estimate of the resources used by the CPU
  491. thread. The contents of this register increases
  492. monotonically. This sysfs interface exposes the number
  493. of SPURR ticks for cpuX.
  494. What: /sys/devices/system/cpu/cpuX/idle_purr
  495. Date: Apr 2020
  496. Contact: Linux for PowerPC mailing list <linuxppc-dev@ozlabs.org>
  497. Description: PURR ticks for cpuX when it was idle.
  498. This sysfs interface exposes the number of PURR ticks
  499. for cpuX when it was idle.
  500. What: /sys/devices/system/cpu/cpuX/idle_spurr
  501. Date: Apr 2020
  502. Contact: Linux for PowerPC mailing list <linuxppc-dev@ozlabs.org>
  503. Description: SPURR ticks for cpuX when it was idle.
  504. This sysfs interface exposes the number of SPURR ticks
  505. for cpuX when it was idle.
  506. What: /sys/devices/system/cpu/cpuX/mte_tcf_preferred
  507. Date: July 2021
  508. Contact: Linux ARM Kernel Mailing list <linux-arm-kernel@lists.infradead.org>
  509. Description: Preferred MTE tag checking mode
  510. When a user program specifies more than one MTE tag checking
  511. mode, this sysfs node is used to specify which mode should
  512. be preferred when running on that CPU. Possible values:
  513. ================ ==============================================
  514. "sync" Prefer synchronous mode
  515. "async" Prefer asynchronous mode
  516. ================ ==============================================
  517. Changes to this sysfs node may not take effect immediately.
  518. See also: Documentation/arm64/memory-tagging-extension.rst