@@ -184,12 +184,66 @@ while \[aq]msr\[aq] reads the MSR_HWP_REQUEST (0x774) register, bits
18418415:8.
185185.TP
186186\f[B] \-\- min \- freq \- limit \f[ R ]
187- Retrieve the minimum CPU frequency supported by the Linux kernel from
187+ Retrieve the minimum supported CPU frequency using the \[aq ] sysfs\[aq ] ,
188+ \[aq ] msr\[aq ] , and \[aq ] cppc\[aq ] mechanisms.
189+ .RS
190+ .PP
191+ The \[aq ] sysfs\[aq ] mechanism returns the minimum CPU frequency
192+ supported by the Linux kernel, it reads
188193\[dq ] /sys/devices/system/cpu/cpu<NUMBER>/cpufreq/cpuinfo_min_freq\[dq ] .
194+ .PP
195+ The \[aq ] msr\[aq ] mechanism reads MSR_PLATFORM_INFO (0xCE), bits 55:48.
196+ .PP
197+ The \[aq ] cppc\[aq ] mechanism reads
198+ \[aq ] /sys/devices/system/cpu/cpu<NUMBER>/acpi_cppc/lowest_freq\[aq ] .
199+ If unavailable, on non\- Intel platforms the frequency is calculated as
200+ \[dq ] nominal_freq * lowest_perf / nominal_perf\[dq ] using values from:
201+ nominal_freq:
202+ \[aq ] /sys/devices/system/cpu/cpu<NUMBER>/acpi_cppc/nominal_freq\[aq ] ,
203+ lowest_perf:
204+ \[aq ] /sys/devices/system/cpu/cpu<NUMBER>/acpi_cppc/lowest_perf\[aq ] ,
205+ nominal_perf:
206+ \[aq ] /sys/devices/system/cpu/cpu<NUMBER>/acpi_cppc/nominal_perf\[aq ] .
207+ .RE
189208.TP
190209\f[B] \-\- max \- freq \- limit \f[ R ]
191- Retrieve the maximum CPU frequency supported by the Linux kernel from
210+ Retrieve the maximum supported CPU frequency using the \[aq ] sysfs\[aq ] ,
211+ \[aq ] msr\[aq ] , and \[aq ] cppc\[aq ] mechanisms.
212+ .RS
213+ .PP
214+ The \[aq ] sysfs\[aq ] mechanism returns the maximum CPU frequency
215+ supported by the Linux kernel, it reads
192216\[dq ] /sys/devices/system/cpu/cpu<NUMBER>/cpufreq/cpuinfo_max_freq\[dq ] .
217+ .PP
218+ The \[aq ] msr\[aq ] mechanism retrieves the highest 1\- core turbo, also
219+ known as P01.
220+ If HWP (Hardware P\- states) is enabled, the \[aq ] msr\[aq ] mechanism
221+ reads MSR_HWP_CAPABILITIES (0x771), bits 7:0, otherwise reads
222+ MSR_TURBO_RATIO_LIMIT (0x1AD), bits 7:0.
223+ .PP
224+ The \[aq ] cppc\[aq ] mechanism reads
225+ \[aq ] /sys/devices/system/cpu/cpu<NUMBER>/acpi_cppc/highest_freq\[aq ] .
226+ If unavailable, on non\- Intel platforms the frequency is calculated as
227+ \[dq ] nominal_freq * highest_perf / nominal_perf\[dq ] using values from:
228+ nominal_freq:
229+ \[aq ] /sys/devices/system/cpu/cpu<NUMBER>/acpi_cppc/nominal_freq\[aq ] ,
230+ highest_perf:
231+ \[aq ] /sys/devices/system/cpu/cpu<NUMBER>/acpi_cppc/highest_perf\[aq ] ,
232+ nominal_perf:
233+ \[aq ] /sys/devices/system/cpu/cpu<NUMBER>/acpi_cppc/nominal_perf\[aq ] .
234+ .RE
235+ .TP
236+ \f[B] \-\- max \- turbo \- freq \f[ R ]
237+ Same as \[aq ] \-\- max\- freq\- limit\[aq ] with the \[aq ] msr\[aq ] mechanism
238+ only.
239+ Retrieves the maximum supported CPU turbo frequency.
240+ .TP
241+ \f[B] \-\- hwp \f[ R ]
242+ Check if hardware power management is enabled.
243+ When enabled, CPUs can scale their frequency automatically without OS
244+ involvement.
245+ Mechanism: \[aq ] msr\[aq ] , reads MSR_PM_ENABLE (0x770), bit 0.
246+ This setting has global scope.
193247.TP
194248\f[B] \-\- frequencies \f[ R ]
195249List CPU frequencies supported by the Linux kernel for
@@ -203,20 +257,16 @@ from \[aq]\-\-min\-freq\-limit\[aq] to \[aq]\-\-max\-freq\-limit\[aq]
203257are available with a step equal to \[aq ] \-\- bus\- clock\[aq ] .
204258.TP
205259\f[B] \-\- base \- freq \f[ R ]
206- Retrieve the base CPU frequency, also known as the \[dq ] guaranteed
207- frequency,\[dq ] HFM (High Frequency Mode), or P1.
208- The supported mechanisms are: \[aq ] sysfs\[aq ] , \[aq ] cppc\[aq ] ,
209- \[aq ] msr\[aq ] .
260+ Retrieve the base CPU frequency, also known as HFM (High Frequency
261+ Mode), or P1.
262+ The supported mechanisms are: \[aq ] sysfs\[aq ] , \[aq ] msr\[aq ] .
210263.RS
211264.PP
212265The preferred mechanism is \[aq ] sysfs\[aq ] , which reads
213266\[aq ] /sys/devices/system/cpu/cpu<NUMBER>/cpufreq/base_frequency\[aq ] .
214267If the file is unavailable, it falls back to
215268\[aq ] /sys/devices/system/cpu/cpu<NUMBER>/cpufreq/bios_limit\[aq ] .
216269.PP
217- The \[aq ] cppc\[aq ] mechanism read the
218- \[aq ] /sys/devices/system/cpu/cpu<NUMBER>/acpi_cppc/nominal_freq\[aq ] .
219- .PP
220270The \[aq ] msr\[aq ] mechanism reads the base CPU frequency from the
221271MSR_HWP_CAPABILITIES (0x771), bits 15:8 if CPU hardware power management
222272is enabled, otherwise from MSR_PLATFORM_INFO (0xCE), bits 15:8.
@@ -229,30 +279,6 @@ legacy Intel platforms.
229279For modern Intel platforms, the \[aq ] doc\[aq ] mechanism assumes a 100MHz
230280bus clock.
231281.TP
232- \f[B] \-\- min \- oper \- freq \f[ R ]
233- Retrieve the minimum CPU operating frequency, the lowest frequency the
234- CPU can operate at.
235- This frequency, also known as Pm, may not always be directly available
236- to the OS but can be used by the platform in certain scenarios (e.g.,
237- some C\- states).
238- The supported mechanisms are: \[aq ] msr\[aq ] , \[aq ] cppc\[aq ] .
239- .RS
240- .PP
241- The \[aq ] msr\[aq ] mechanism: \[aq ] msr\[aq ] , reads MSR_PLATFORM_INFO
242- (0xCE), bits 55:48.
243- .PP
244- The \[aq ] cppc\[aq ] mechanism reads
245- \[aq ] /sys/devices/system/cpu/cpu<NUMBER>/acpi_cppc/lowest_freq\[aq ] .
246- If unavailable, on non\- Intel platforms the frequency is calculated as
247- \[dq ] base_freq * lowest_perf / nominal_perf\[dq ] using values from:
248- base_freq:
249- \[aq ] /sys/devices/system/cpu/cpu<NUMBER>/acpi_cppc/nominal_freq\[aq ] ,
250- lowest_perf:
251- \[aq ] /sys/devices/system/cpu/cpu<NUMBER>/acpi_cppc/lowest_perf\[aq ] ,
252- nominal_perf:
253- \[aq ] /sys/devices/system/cpu/cpu<NUMBER>/acpi_cppc/nominal_perf\[aq ] .
254- .RE
255- .TP
256282\f[B] \-\- turbo \f[ R ]
257283Check if turbo is enabled or disabled.
258284When enabled, CPUs can run at frequencies above the base frequency if
@@ -262,36 +288,6 @@ Reads the sysfs file based on the CPU frequency driver: intel_pstate \-
262288\- \[aq ] /sys/devices/system/cpu/cpufreq/boost\[aq ] .
263289The setting has global scope.
264290.TP
265- \f[B] \-\- max \- turbo \- freq \f[ R ]
266- Retrieve the maximum turbo frequency \- the highest frequency a single
267- CPU can run on.
268- Also known as max 1\- core turbo or P01.
269- The supported mechanisms are: \[aq ] msr\[aq ] , \[aq ] cppc\[aq ] .
270- .RS
271- .PP
272- The \[aq ] msr\[aq ] mechanism reads MSR_HWP_CAPABILITIES (0x771), bits 7:0
273- if hardware power management is enabled, otherwise reads
274- MSR_TURBO_RATIO_LIMIT (0x1AD), bits 7:0.
275- .PP
276- The \[aq ] cppc\[aq ] mechanism reads
277- \[aq ] /sys/devices/system/cpu/cpu<NUMBER>/acpi_cppc/highest_freq\[aq ] .
278- If unavailable, on non\- Intel platforms the frequency is calculated as
279- \[dq ] base_freq * highest_perf / nominal_perf\[dq ] using values from:
280- base_freq:
281- \[aq ] /sys/devices/system/cpu/cpu<NUMBER>/acpi_cppc/nominal_freq\[aq ] ,
282- highest_perf:
283- \[aq ] /sys/devices/system/cpu/cpu<NUMBER>/acpi_cppc/highest_perf\[aq ] ,
284- nominal_perf:
285- \[aq ] /sys/devices/system/cpu/cpu<NUMBER>/acpi_cppc/nominal_perf\[aq ] .
286- .RE
287- .TP
288- \f[B] \-\- hwp \f[ R ]
289- Check if hardware power management is enabled.
290- When enabled, CPUs can scale their frequency automatically without OS
291- involvement.
292- Mechanism: \[aq ] msr\[aq ] , reads MSR_PM_ENABLE (0x770), bit 0.
293- This setting has global scope.
294- .TP
295291\f[B] \-\- epp \f[ R ]
296292Retrieve EPP (Energy Performance Preference) using \[aq ] sysfs\[aq ]
297293(preferred) or \[aq ] msr\[aq ] mechanisms.
@@ -390,22 +386,6 @@ frequency.
390386Regardless of the \[aq ] \-\- mechanisms\[aq ] option, all available
391387mechanisms are tried to resolve these special values to the actual base
392388frequency.
393- \f[B] Pm \f[ R ] Minimum CPU operating frequency (see
394- \[aq ] \-\- min\- oper\- freq\[aq ] ).
395- Regardless of the \[aq ] \-\- mechanisms\[aq ] option, the \[aq ] msr\[aq ]
396- mechanism is always used to resolve these special values to the actual
397- minimum CPU operating frequency.
398- .PP
399- Note, on some systems \[aq ] Pm\[aq ] is lower than \[aq ] Pn\[aq ] .
400- For example, \[aq ] Pm\[aq ] may be 500MHz, while \[aq ] Pn\[aq ] may be
401- 800MHz.
402- On such systems, Linux may use \[aq ] Pn\[aq ] as the minimum supported
403- frequency limit.
404- From Linux\[aq ] s perspective, the minimum supported frequency is 800MHz,
405- not 500MHz.
406- In this case, using \[aq ] \-\- min\- freq 500MHz \-\- mechanisms sysfs\[aq ]
407- will fail, while \[aq ] \-\- min\- freq 500MHz \-\- mechanisms msr\[aq ] will
408- succeed.
409389.RE
410390.TP
411391\f[B] \-\- max \- freq \f[ R ] \f[I] MAX_FREQ \f[ R ]
0 commit comments