Changelog practices: Keep a Changelog. Versioning practices: Semantic Versioning.
- Fix compatibility with python <= 3.10.
- Fix another crash caused by a typo in v1.5.23.
- Fix crashes caused by typos in v1.5.23.
- Fix frequency reporting via MSR on Meteor Lake and Lunar Lake.
- Add PM QoS support.
- Require python version 3.9 (was 3.8).
- Fix min. and max. uncore frequency support on Granite Rapids and Sierra Forest Xeons.
- Fix the '--list-mechanisms' option.
- Fix 'pepc topology info' crash on multi-package systems with all CPUs offline on one or more packages.
- Add Clearwater Forest Xeon support.
- Improve error message for 'pepc pstates config --epp=' failing with the performance governor.
- Minor change required to support the 'wult' project. No 'pepc' tool functionality changes.
- Minor change required to support the 'stats-collect' project. No 'pepc' tool functionality changes.
- Fix failure when '--dies all' or '--cores all' is specified without specifying package numbers.
- Update the uncore TPMI spec file to include UFS latency control registers.
- Remove the 'pepc cstates --pch-negotiation' option.
- Improve 'pepc topology info' output and avoid printing identical lines many times.
- Improve '--cores' and '--dies' options handling: do not require '--packages' option if there is no abiguity.
- Misc. changes in shared modules to support dependent projects, such as 'stats-collect'. No 'pepc' tool functional changes.
- Critical fix: address incorrect 'pepc pastates config --min-uncore-freq' behavior on Grand Ridge, Sierra Forest and Granite Rapids platforms.
- Critical fix: address the issue of the 'pepc tpmi write' operation writing incorrect values in some cases.
- Minor change: do not print a message about missing package C-states table. Often it is missing for a good reason, like on the Snow Ridge or Grand Ridge.
- Fix TPMI spec files loading defect to ensure 'PEPC_TPMI_DATA_PATH' mechanism works.
- Fix the following options of 'pepc pstates info' on some systems: '--base-freq', '--max-eff-freq', '--min-oper-freq', '--max-turbo-freq'.
- Dummy release, no changes comparing to 1.5.8.
- Add 'pepc tpmi read' and 'pepc tpmi write' commands.
- Workaround for connecting to remote hosts becaulse of paramiko failing in Fedora 39.
- New command: pepc tpmi. Only the "ls" sub-command is implemented so far.
- Improve multi-CPU MSR read speed for the remote usage scenario.
- Fix incorrect uncore frequency configure result on systems that use the TPMI uncore frequency driver (regression since v1.5.0).
- Fix uncore frequency configuration failure (regression since v1.5.0).
- Add the '--l1-aspm' option to 'pepc aspm' to get/set L1 ASPM for individual PCI devices.
- Improve formatting of values in 'pepc info' commands.
- Fix warning when using the '--pkg-cstate-limit' option (regression introduced in v1.5.1).
- Fix a crash when user specifies certain incorrect CPU frequency values (regression introduced in v1.5.0).
- Support setting uncore frequency for I/O dies.
- Improve 'pepc topology info' to include I/O dies to the output.
- Fix multiple bugs on systems that have I/O dies.
- Fix C-state printing with '--yaml' opiton.
- Fix 'pepc pstates config' failing with 'mdl' CPU and uncore frequency value.
- Refer to packages and dies when printing about per-package and per-die properties, instead for referring to CPU numbers.
- Minor logger improvement to satisfy 'wult' project needs.
- Fix 'pepc power config --ppl2' faling on some system with a "PPL2 value out of range" error message.
- Fix uncore module probing on non-Intel systems.
- Add '--modules' and '--dies' options to all commands that support '--cores' option. The new options allow for specifying module and die numbers.
- 'pepc * info' commands do not print CPU numbers when a property has the same value for all CPUs. Instead, just "all CPUs" is printed. This makes output less cluttered.
- Add '--mechanism' option, which can be used for specifying the mechanism for getting and setting pepc C-states, P-states, and Power options.
- Add '--list-mechanisms' option for listing all the available mechanisms.
- Add new '--frequencies' option for listing CPU frequencies acceptable but the Linux driver.
- Add new 'cppc' mechanism, which can read ACPI CPPC CPU frequency data.
- Remove '--epb-hw' and '--epp-hw' options. They are replaced with '--epb' and '-epp' plus the '--mechanism msr' options combination.
- Remove '--min-freq-hw' and '--max-freq-hw' options. They are replaced with '--min-freq' and '-max-freq' plus the '--mechanism msr' options combination.
- The 'pepc aspm info' command now has separate '--policy' and '--policies' options.
- Fix regression in v1.4.36: 'pepc cstates|pstates|power config' does not print information about changed options.
- Add '--pch-negotiation' option for 'pepc cstates' command.
- pepc cstates: when system has no C-states (e.g., booted with idle=poll), do not error out, just print that there are no C-states.
- pepc pstates: add "mdl" special uncore frequency value support.
- Add 'base_frequency' support for AMD systems.
- Improve scaling printed values with SI prefixes (e.g., print 2.44ms instead of 0.00244140625s.
- Improve readability by printing numeric values without using quotes.
- Fix 'pepc pstates info' output, group the properties by source.
- Add new methods to 'CPUInfo' module to support 'wult' project needs.
- pepc cstates info: remove '--pkg-cstate-limits', '--pkg-cstate-limit-lock', and '--pkg-cstate-limit-aliases' options. Now this information is printed with '--pkg-cstate-limit' option. This effectively reverts the corresponding change in v1.4.29.
- Fix 'pepc cstates config --cstates all' printing output.
- Prevent 'pepc pstates info' and 'pepc power info' from printing unsupported properties when no properties are specified.
- Fix typo in 'pepc' tool sub-option 'config/info's help text.
- Group propeties by source only when printing all properties. This partially reverts grouping introduced in version 1.4.28.
- Change '--cstates' option output format, the properties are now grouped by their source.
- Move "governors" from '--governor' option, to it own option '--governors'.
- Move package C-state limit lock, limits and alises from option '--pkg-cstate-limit', to their own options: '--pkg-cstate-limit-lock', '--pkg-cstate-limits' and '--pkg-cstate-limit-aliases'.
- Change 'info' sub-command output format, the properties are now grouped by their source.
- Fix crash intoduced in v1.4.26, which occurred when running 'pepc' commands on hybrid CPUs.
- Fix '--min-freq-hw' and '--max-freq-hw' options on hybrid CPUs.
- Add 'pepc topology --hybrid' option.
- Improve error messages about unsupported features.
- Add Niklas Neronin to project maintainers.
- Minor changes to support 'wult' project.
- Minor changes to support 'stats-collect' project.
- Minor updates in self-tests.
- Fix scope for CStates properties 'cstate_prewake', 'c1e_autopromote'. The scope for these properties is die on Cascade Lake AP.
- Fix '--cstate-prewake' and '--c1e-autopromote' options scope: was "core", should be "package".
- Add '--override-cpu-model' option to 'pepc power/pstates/cstates'. This options can be used for overriding the CPU model.
- Add workaround for inconsistent CPU frequency driver behavior on AMD systems. This fixes 'pepc pstates config --max-freq max' failure on AMD systems.
- Add '--tdp' option to 'pepc power info', for reading CPU package TDP.
- Add 'pepc power' manual page.
- Rename 'pepc power' options by removing the '-hw' part from them.
- Install manual pages when using 'pip install'.
- New 'pepc power' command. Currently supports only RAPL package power.
- Minor change related to process output parsing. Needed for the 'wult' project.
- Initial (may be not fully correct) Sierra Forrest platform support.
- Fix Debian build dependency for pytests to run in build environment (take 2).
- Fix Debian build dependency for pytests to run in build environment.
- Fix a crash in RHEL, which has an empty newline in '/etc/release' - do not choke on it.
- Fix scope for PStates properties 'epb_hw', 'bus_clock' and CStates properties 'c1_demotion', 'c1_undemotion', 'pkg_cstate_limit'. The scope for these properties is different on different systems.
- Fix scope for various MSR-based features, such as EPB, and C1 demotion: it is platform-dependent and was incorrect for some platforms (e.g., Knights Landing).
- Add '--bus-clock' option to 'pepc pstates info' command.
- Extend split_csv_line() in Trivial.py.
- Fixed Denverton and Snow Ridge package C-state limits.
- Split 'pepc' manual page on multiple per-command pages.
- Improve manual pages.
- Simplify '--help' output.
- pepc cstates info: print C-state description in addition to latency and target residency.
- No user-visible changes. Technical release.
- No user-visible changes. Technical release.
- Refine package C-states support for Granite Rapids Xeon.
- Add package C-states support for Granite Rapids Xeon.
- Fix errors handling regression introduced in v1.4.1.
- Fix 'pepc pstates' crash on old, pre-HWP systems.
- When reading unsupported MSRs 'pepc' tool will treat them as "not supported", instead of erroring.
- Column 'Die' is excluded from 'pepc pstates info' default columns, on one die per package systems.
- Column 'Module' is excluded from 'pepc pstates info' default columns, on one core per module systems.
- Fix 'pepc [pc]states config' failure on systems that do not have the 'systemct' tool installed (e.g., some Yocto-based systems).
- Add '--core-siblings' option to all 'pepc' commands.
- Remove the '--ht-siblings' option of 'pepc cpu-hotplug offline'. The '--core-siblings' option should be used instead.
- Add partial Granite Rapids Xeon support.
- Improve 'Systemctl' module to check if the 'systemctl' tool is installed.
- Fix 'pepc cstates config --pkg-cstate-limit' option, take 2. The fix in version 1.3.42 did not work in some cases.
- Fix 'pepc cstates config --pkg-cstate-limit' option, it did not work correctly in some cases because we made wrong assumptions about MSR scope.
- Add '-D'/'--dataset' option to 'pepc', it defines the dataset that will be used to emulate a host for running the command on.
- Minor changes required for the 'wult' project.
- Fix 'pepc' crash on some system when it is run without arguments.
- Revert changes in 1.3.37 due to them breaking dependent projects.
- Fix 'pepc' crash on some system when it is run without arguments.
- Fix self-tests: they used real sysfs instead of emulated data in some cases.
- Fix regression introduced in 1.3.34: 'pepc cstates info' and 'pepc pstates info' crashed with 'ValueError' in some cases.
- Fix error when the '--epb' option is used on a system that does not support EPB.
- Add Grand Ridge SoC support.
- Add '--epb-hw' and '--epp-hw' options of 'pepc pstates', they can be used to access EPB/EPP via the MSR registers (instead of accessing via sysfs).
- Remove the '--epb-policy' and '--epp-policy' options of 'pepc pstates'. Now policy can be specified using the '--epb' and '--epp' options.
- Change '--epb' and '--epp' options of 'pepc pstates': use sysfs instead of MSR. Access via MSR is now done using the '--epb-hw' and '--epp-hw' options.
- pepc cstates: do not fail on systems that have no C-states.
- Add '--online-only' option to 'pepc topology info' command.
- Add '--columns' option to 'pepc topology info' command.
- Add 'module' level support to the 'CPUInfo.py' module.
- Add Raptor and Meteor Lake support.
- Change 'pepc topology info' option '--order' to be case insensitive.
- Fix regression introduced in 1.3.29: 'pepc cstates config --pkg-cstate-limit' did not print anything on some systems.
- Fix regression introduced in 1.3.29: 'pepc cstates info --pkg-cstate-limit' did not print anything on some systems.
- Add '--cpus', '--cores' and '--packages' options to 'pepc topology info' command.
- Fix regression introduced in 1.3.29: setting CPU frequency sometimes fails.
- Fix 'pepc pstates config/info --epp' option: it incorrectly assumed that EPP is per-package, even though it is per-CPU.
- Fix kernel 'DEBUG_LOCKS_WARN_ON' warning caused by wult drivers.
- Add 'pepc [pc]state info --yaml' option.
- Add 'topology info' command that prints CPU topology information.
- Remove '--save' and '--restore' option, add 'pepc [pc]states save/restore' sub-commands instead.
- Add '--save' -option to 'pepc pstates info' and 'pepc cstates info' commands.
- Add '--restore' -option to 'pepc pstates config' and 'pepc cstates config' commands.
- Add Emerald Rapids support.
- Add options '--min-freq-hw' and '--max-freq-hw' to 'pepc pstate info' command.
- pepc pstates: add "Pm" special frequency value support.
- minor changes needed to support the 'wult' project.
- pepc pstates: add "P1" and "Pn" special frequency values support. Now they can be used with '--min-freq' and '--max-freq' options.
- pepc cpu-hotplug online/offline: rename the '--siblings' to '--ht-siblings'.
- Add the 'cstates config --intel-pstate-mode' option.
- Do not try to read HWP-related features (like EPP) on non-HWP systems.
- Add and 'intel_pstate' driver operation mode support (passive, active).
- The "pepc [pc]state info" does not print information about unsupported commands any longer.
- Fix bugs in tests.
- Add a couple of helper functions to the 'Trivial' module, they are needed for the dependent 'wult' project.
- Add scope awareness to the 'MSR.py' module. This speeds 'pepc' commands that end up accessing MSR registers which have, say, package scope.
- Alder Lake mobile support (CPU model 0xBE).
- Another minor update in 'Exceptions.py' to satisfy 'wult' project needs.
- A minor update in 'Exceptions.py' to satisfy 'wult' project needs.
- Added OS package information for the 'libbpf' library.
- Fix ASPM-related tests failures when they run on real HW (vs emulated).
- Add 'cstates config --governor' option.
- Fix 'cpu info --turbo' failure on turbo-less systems.
- Add Knights Landing/Mill package C-state limit table.
- Add idle driver and governor options to 'cstates info'.
- Changed Sapphire Rapids PC6 limits: support retention and non-retention variants.
- Minor improvements required for RPM packaging.
- Add RPM packaging support.
- pepc: provide a python interpreter search capability dependent projects.
- pepc: fix in 'abspath()', which fixes the 'wult' tool using pepc libraries.
- pepc: fix running commands in Ubuntu/'dash' (regression in 1.3.5)
- pepc: add per-property options to 'cstates info' and 'pstates info'.
- pepc cstates config: fix "bad C-state name" failures.
- pepc: improve error message if sub-command was not specified.
- pepc cstates config --pkg-cstate-limit: fix failures on some systems.
- pepc cstates config --epp <policy_name>: now fixed and works.
- pepc: fix EPP support on Broadwell-based systems.
- pepc: do not fail when used in 'dash'.
- pepc: fix crash introduced in version 1.3.0.
- pepc pstates: re-implemented.
- pepc pstates: command-line options made consistent with 'pepc cstates'.
- pepc cstates: added Alder Lake package C-state limits support.
- pepc: fix 'pepc cstates config' crash in Ubuntu 20.04.3 LTS.
- pepc: fix errors on remote systems not using 'intel_pstate' driver.
- pepc: fix crash on systems for which there are no package C-states aliases.
- pepc: fix case-sensitivity bugs.
- Merge the 'cstate set' command into 'cstate config'.
- Rename 'aspm set' command to 'aspm config'.
- Improve C-states information printing.
- Fixed '--cores' and '--packages' dependency for C-state commands.
- Fix and improve CPU onlining/offlining.
- pepc: fix file type markers in 'lsdir()', which fixes 'wult scan'.
- pepc: python 3.8 crash fix.
- pepc: speed-up the C-state validation, required for wult tool.
- pepc: start tagging new releases, otherwise only very minor changes.
- pepc: first release.