Skip to content

Commit 6f65ecc

Browse files
committed
Release version 1.6.14
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
1 parent 7d9ebaa commit 6f65ecc

6 files changed

Lines changed: 84 additions & 100 deletions

File tree

CHANGELOG.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,11 @@ Versioning practices: [Semantic Versioning](https://semver.org/spec/v2.0.0.html)
55

66
## [ADD NEW VERSION HERE] - ADD DATE HERE
77
### Fixed
8+
### Added
9+
### Removed
10+
### Changed
11+
12+
## [1.6.14] - 2026-01-14
813
### Added
914
- 'pepc pstates info --fixed-base-perf'
1015
- 'pepc pstates info --cppc-nominal-perf' and other CPPC performance levels
@@ -13,7 +18,6 @@ Versioning practices: [Semantic Versioning](https://semver.org/spec/v2.0.0.html)
1318
support.
1419
### Removed
1520
- Stop trying to mimic sysfs frequency via MSRs.
16-
### Changed
1721

1822
## [1.6.13] - 2026-01-08
1923
### Fixed
@@ -874,4 +878,4 @@ Versioning practices: [Semantic Versioning](https://semver.org/spec/v2.0.0.html)
874878

875879
## [1.1.0] - 2021-10-29
876880
### Changed
877-
- pepc: first release.
881+
- pepc: first release.

debian/changelog

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,14 @@
1+
pepc (1.6.14) unstable; urgency=low
2+
3+
* 'pepc pstates info --fixed-base-perf'
4+
* 'pepc pstates info --cppc-nominal-perf' and other CPPC performance levels
5+
support.
6+
* 'pepc pstates info --hwp-guaranteed-perf' and other HWP performance levels
7+
support.
8+
* Stop trying to mimic sysfs frequency via MSRs.
9+
10+
-- Artem Bityutskiy <artem.bityutskiy@intel.com> Wed, 14 Jan 2026 00:00:00 +0200
11+
112
pepc (1.6.13) unstable; urgency=low
213

314
* Fix 'pepc pstates' crash on Lunar Lake.

pepcdata/man/man1/pepc-pstates.1

Lines changed: 64 additions & 95 deletions
Original file line numberDiff line numberDiff line change
@@ -168,75 +168,20 @@ tried first.
168168
Display available mechanisms for retrieving CPU P\-states information.
169169
.TP
170170
\f[B]\-\-min\-freq\f[R]
171-
Retrieve the minimum CPU frequency using the \[aq]sysfs\[aq] or
172-
\[aq]msr\[aq] mechanisms.
173-
The \[aq]sysfs\[aq] mechanism reads
174-
\[aq]/sys/devices/system/cpu/cpu<NUMBER>/cpufreq/scaling_min_freq\[aq],
175-
while \[aq]msr\[aq] reads the MSR_HWP_REQUEST (0x774) register, bits
176-
7:0.
171+
Retrieve the minimum CPU frequency from
172+
\[aq]/sys/devices/system/cpu/cpu<NUMBER>/cpufreq/scaling_min_freq\[aq].
177173
.TP
178174
\f[B]\-\-max\-freq\f[R]
179-
Retrieve the maximum CPU frequency using the \[aq]sysfs\[aq] or
180-
\[aq]msr\[aq] mechanisms.
181-
The \[aq]sysfs\[aq] mechanism reads
182-
\[aq]/sys/devices/system/cpu/cpu<NUMBER>/cpufreq/scaling_max_freq\[aq],
183-
while \[aq]msr\[aq] reads the MSR_HWP_REQUEST (0x774) register, bits
184-
15:8.
175+
Retrieve the maximum CPU frequency from
176+
\[aq]/sys/devices/system/cpu/cpu<NUMBER>/cpufreq/scaling_max_freq\[aq].
185177
.TP
186178
\f[B]\-\-min\-freq\-limit\f[R]
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
193-
\[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
179+
Retrieve the minimum supported CPU frequency from
180+
\[aq]/sys/devices/system/cpu/cpu<NUMBER>/cpufreq/cpuinfo_min_freq\[aq].
208181
.TP
209182
\f[B]\-\-max\-freq\-limit\f[R]
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
216-
\[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.
183+
Retrieve the maximum supported CPU frequency from
184+
\[aq]/sys/devices/system/cpu/cpu<NUMBER>/cpufreq/cpuinfo_max_freq\[aq].
240185
.TP
241186
\f[B]\-\-hwp\f[R]
242187
Check if hardware power management is enabled.
@@ -257,20 +202,14 @@ from \[aq]\-\-min\-freq\-limit\[aq] to \[aq]\-\-max\-freq\-limit\[aq]
257202
are available with a step equal to \[aq]\-\-bus\-clock\[aq].
258203
.TP
259204
\f[B]\-\-base\-freq\f[R]
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].
263-
.RS
264-
.PP
265-
The preferred mechanism is \[aq]sysfs\[aq], which reads
205+
Retrieve the base CPU frequency from
266206
\[aq]/sys/devices/system/cpu/cpu<NUMBER>/cpufreq/base_frequency\[aq].
267207
If the file is unavailable, it falls back to
268208
\[aq]/sys/devices/system/cpu/cpu<NUMBER>/cpufreq/bios_limit\[aq].
269-
.PP
270-
The \[aq]msr\[aq] mechanism reads the base CPU frequency from the
271-
MSR_HWP_CAPABILITIES (0x771), bits 15:8 if CPU hardware power management
272-
is enabled, otherwise from MSR_PLATFORM_INFO (0xCE), bits 15:8.
273-
.RE
209+
.TP
210+
\f[B]\-\-fixed\-base\-freq\f[R]
211+
Retrieve the CPU fixed base frequency from MSR_PLATFORM_INFO (0xCE),
212+
bits 15:8.
274213
.TP
275214
\f[B]\-\-bus\-clock\f[R]
276215
Retrieve the bus clock frequency, one of the CPU\[aq]s reference clocks.
@@ -340,6 +279,51 @@ Governors determine the P\-state of a CPU based on its activity and
340279
other factors, each implementing a unique selection policy.
341280
Available governors are listed in
342281
\[aq]/sys/devices/system/cpu/cpufreq/policy<NUMBER>/scaling_available_governors\[aq].
282+
.TP
283+
\f[B]\-\-cppc\-lowest\-perf\f[R]
284+
Retrieve the ACPI CPPC lowest performance level value for specified CPUs
285+
from
286+
\[aq]/sys/devices/system/cpu/cpu<NUMBER>/acpi_cppc/lowest_perf\[aq].
287+
.TP
288+
\f[B]\-\-cppc\-lowest\-nonlinear\-perf\f[R]
289+
Retrieve the ACPI CPPC lowest nonlinear performance level value for
290+
specified CPUs from
291+
\[aq]/sys/devices/system/cpu/cpu<NUMBER>/acpi_cppc/lowest_nonlinear_perf\[aq].
292+
.TP
293+
\f[B]\-\-cppc\-guaranteed\-perf\f[R]
294+
Retrieve the ACPI CPPC guaranteed performance level value for specified
295+
CPUs from
296+
\[aq]/sys/devices/system/cpu/cpu<NUMBER>/acpi_cppc/guaranteed_perf\[aq].
297+
.TP
298+
\f[B]\-\-cppc\-nominal\-perf\f[R]
299+
Retrieve the ACPI CPPC nominal performance level value for specified
300+
CPUs from
301+
\[aq]/sys/devices/system/cpu/cpu<NUMBER>/acpi_cppc/nominal_perf\[aq].
302+
.TP
303+
\f[B]\-\-cppc\-highest\-perf\f[R]
304+
Retrieve the ACPI CPPC highest performance level value for specified
305+
CPUs from
306+
\[aq]/sys/devices/system/cpu/cpu<NUMBER>/acpi_cppc/highest_perf\[aq].
307+
.TP
308+
\f[B]\-\-cppc\-nominal\-freq\f[R]
309+
Retrieve the ACPI CPPC nominal frequency for specified CPUs from
310+
\[aq]/sys/devices/system/cpu/cpu<NUMBER>/acpi_cppc/nominal_freq\[aq].
311+
.TP
312+
\f[B]\-\-hwp\-lowest\-perf\f[R]
313+
Retrieve the HWP lowest performance level for specified CPUs.
314+
Reads MSR_HWP_CAPABILITIES (0x771), bits 31:24.
315+
.TP
316+
\f[B]\-\-hwp\-efficient\-perf\f[R]
317+
Retrieve the HWP most efficient performance level for specified CPUs.
318+
Reads MSR_HWP_CAPABILITIES (0x771), bits 23:16.
319+
.TP
320+
\f[B]\-\-hwp\-guaranteed\-perf\f[R]
321+
Retrieve the HWP guaranteed performance level for specified CPUs.
322+
Reads MSR_HWP_CAPABILITIES (0x771), bits 15:8.
323+
.TP
324+
\f[B]\-\-hwp\-highest\-perf\f[R]
325+
Retrieve the HWP highest performance level for specified CPUs.
326+
Reads MSR_HWP_CAPABILITIES (0x771), bits 7:0.
343327
.SS Subcommand \f[I]\[aq]config\[aq]\f[R]
344328
Configure CPU P\-states for specified CPUs.
345329
If no parameter is provided, the current value(s) will be displayed.
@@ -360,40 +344,25 @@ tried first.
360344
Display available mechanisms for configuring CPU P\-states.
361345
.TP
362346
\f[B]\-\-min\-freq\f[R] \f[I]MIN_FREQ\f[R]
363-
Set the minimum CPU frequency.
347+
Set the minimum CPU frequency via
348+
\[aq]/sys/devices/system/cpu/cpu<NUMBER>/cpufreq/scaling_min_freq\[aq].
364349
The default unit is \[aq]Hz\[aq], but \[aq]kHz\[aq], \[aq]MHz\[aq], and
365350
\[aq]GHz\[aq] can also be used (for example \[dq]900MHz\[dq]).
366-
The supported mechanisms are: \[aq]sysfs\[aq], \[aq]msr\[aq].
367-
The \[aq]sysfs\[aq] mechanism uses
368-
\[aq]/sys/devices/system/cpu/cpu<NUMBER>/cpufreq/scaling_min_freq\[aq].
369-
The \[aq]msr\[aq] mechanism uses the MSR_HWP_REQUEST (0x774) register,
370-
bits 7:0.
371351
.RS
372352
.PP
373353
The following special values can also be used: \f[B]min\f[R] Minimum
374354
frequency supported by the Linux CPU frequency driver (see
375355
\[aq]\-\-min\-freq\-limit\[aq]).
376-
Regardless of the \[aq]\-\-mechanisms\[aq] option, the \[aq]sysfs\[aq]
377-
mechanism is always used to resolve \[aq]min\[aq] to the actual minimum
378-
frequency.
379356
\f[B]max\f[R] Maximum frequency supported by the Linux CPU frequency
380357
driver (see \[aq]\-\-max\-freq\-limit\[aq]).
381-
Regardless of the \[aq]\-\-mechanisms\[aq] option, the \[aq]sysfs\[aq]
382-
mechanism is always used to resolve \[aq]max\[aq] to the actual maximum
383-
frequency.
384-
\f[B]base\f[R], \f[B]hfm\f[R], \f[B]P1\f[R] Base CPU frequency (see
358+
\f[B]base\f[R], \f[B]hfm\f[R] Base CPU frequency (see
385359
\[aq]\-\-base\-freq\[aq]).
386-
Regardless of the \[aq]\-\-mechanisms\[aq] option, all available
387-
mechanisms are tried to resolve these special values to the actual base
388-
frequency.
389360
.RE
390361
.TP
391362
\f[B]\-\-max\-freq\f[R] \f[I]MAX_FREQ\f[R]
392-
Set the maximum CPU frequency.
393-
Uses the same mechanisms as described in the \[aq]info\[aq]
394-
sub\-command.
395-
Similar to \[aq]\-\-min\-freq\[aq], but applies to the maximum
396-
frequency.
363+
Similar to \[aq]\-\-min\-freq\[aq], but sets the maximum CPU frequency
364+
via
365+
\[aq]/sys/devices/system/cpu/cpu<NUMBER>/cpufreq/scaling_max_freq\[aq].
397366
.TP
398367
\f[B]\-\-turbo\f[R] \f[I]on|off\f[R]
399368
Toggle turbo mode globally via sysfs.

pepctools/_Pepc.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
from pepclibs.helperlibs.ProcessManager import ProcessManagerType
3939
from pepclibs.PropsTypes import PropertyTypedDict
4040

41-
_VERSION: Final[str] = "1.6.13"
41+
_VERSION: Final[str] = "1.6.14"
4242
TOOLNAME: Final[str] = "pepc"
4343

4444
_LOG = Logging.getLogger(f"{Logging.MAIN_LOGGER_NAME}.pepc").configure(prefix=TOOLNAME)

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "pepc"
3-
version = "1.6.13"
3+
version = "1.6.14"
44
description = "A tool for configuring power and performance aspects of a Linux system."
55
authors = [
66
{ name = "Artem Bityutskiy", email = "dedekind@gmail.com" }

rpm/pepc.spec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
%bcond_without tests
22

33
Name: pepc
4-
Version: 1.6.13
4+
Version: 1.6.14
55
Release: 1%{?dist}
66
Summary: Power, Energy, and Performance configuration tool
77

0 commit comments

Comments
 (0)