- Sep 23, 2024
-
-
John B. Wyatt IV authored
Add SPDX identifier to the gitignore. Remove the comment and .i file since the file it references was removed in another patch. This patch depends on Min-Hua Chen's 'pm: cpupower: rename raw_pylibcpupower.i'. Signed-off-by:
John B. Wyatt IV <jwyatt@redhat.com> Signed-off-by:
John B. Wyatt IV <sageofredondo@gmail.com> Signed-off-by:
Shuah Khan <skhan@linuxfoundation.org>
-
- Sep 13, 2024
-
-
Min-Hua Chen authored
The raw_pylibcpupower.i is removed unexpectedly after 'make mrproper' We can reproduce the error by performing the following steps: cd linux-next make mrproper cd tools/power/cpupower/bindings/python make We will get an error message: make: *** No rule to make target 'raw_pylibcpupower.i', needed by 'raw_pylibcpupower_wrap.c'. Stop. The root cause: The *.i files are already used for pre-processor output files and the kernel removes all the *.i files by 'make mrproper'. That explains why the raw_pylibcpupower.i is removed by 'make mrproper'. To fix it, Follow John's suggestion to rename raw_pylibcpupower.i to raw_pylibcpupower.swg. See: https://www.swig.org/Doc4.2/SWIG.html Reviewed-by:
John B. Wyatt IV <jwyatt@redhat.com> Reviewed-by:
John B. Wyatt IV <sageofredondo@gmail.com> Tested-by:
John B. Wyatt IV <jwyatt@redhat.com> Tested-by:
John B. Wyatt IV <sageofredondo@gmail.com> Signed-off-by:
Min-Hua Chen <minhuadotchen@gmail.com> Signed-off-by:
Shuah Khan <skhan@linuxfoundation.org>
-
- Sep 06, 2024
-
-
John B. Wyatt IV authored
Add error message to better explain to the user when SWIG and python-config is missing from the path. Makefile was cleaned up and unneeded elements were removed. Suggested-by:
Shuah Khan <skhan@linuxfoundation.org> Signed-off-by:
John B. Wyatt IV <jwyatt@redhat.com> Signed-off-by:
John B. Wyatt IV <sageofredondo@gmail.com> Signed-off-by:
Shuah Khan <skhan@linuxfoundation.org>
-
John B. Wyatt IV authored
This script demonstrates how to make use of, and tests, the bindings. In the future, this script could become part of a larger test suite to test the bindings and libcpupower. Signed-off-by:
John B. Wyatt IV <jwyatt@redhat.com> Signed-off-by:
John B. Wyatt IV <sageofredondo@gmail.com> Signed-off-by:
Shuah Khan <skhan@linuxfoundation.org>
-
John B. Wyatt IV authored
SWIG is a tool packaged in Fedora and other distros that can generate bindings from C and C++ code for several languages including Python, Perl, and Go. These bindings allows users to easily write scripts that use and extend libcpupower's functionality. Currently, only Python is provided in the makefile, but additional languages may be added if there is demand. Added suggestions from Shuah Khan for the README and license discussion. Note that while SWIG itself is GPL v3+ licensed; the resulting output, the bindings code, is permissively licensed + the license of the .o files. Please see https://swig.org/legal.html and [1] for more details. [1] https://lore.kernel.org/linux-pm/Zqv9BOjxLAgyNP5B@hatbackup/ Suggested-by:
Shuah Khan <skhan@linuxfoundation.org> Signed-off-by:
John B. Wyatt IV <jwyatt@redhat.com> Signed-off-by:
John B. Wyatt IV <sageofredondo@gmail.com> Signed-off-by:
Shuah Khan <skhan@linuxfoundation.org>
-
John B. Wyatt IV authored
There was a symbol listed in the powercap.h file that was not implemented. Implement it with a stub return of 0. Programs like SWIG require that functions that are defined in the headers be implemented. Fixes: c2294c14 ("cpupower: Introduce powercap intel-rapl library and powercap-info command") Suggested-by:
Shuah Khan <skhan@linuxfoundation.org> Signed-off-by:
John B. Wyatt IV <jwyatt@redhat.com> Signed-off-by:
John B. Wyatt IV <sageofredondo@gmail.com> Signed-off-by:
Shuah Khan <skhan@linuxfoundation.org>
-
- Sep 04, 2024
-
-
Amit Vadhavana authored
- Standardize directory variables to support more flexible installations. - Add copyright and licensing information to the Makefile. - Introduce ".PHONY" declarations to ensure that specific targets are always executed, regardless of the presence of files with matching names. - Add a help target to provide usage instructions. Signed-off-by:
Amit Vadhavana <av2082000@gmail.com> Acked-by:
Todd Brandt <todd.e.brandt@linux.intel.com> Link: https://patch.msgid.link/Update directory handling and installation process in Makefile [ rjw: Changelog edits ] Signed-off-by:
Rafael J. Wysocki <rafael.j.wysocki@intel.com>
-
Yo-Jung (Leo) Lin authored
By default, sleepgraph.py creates suspend-{date}-{time} directories to store artifacts, or suspend-{date}-{time}-xN if the --multi option is used. Ignore those directories by adding a .gitignore file. Signed-off-by:
Yo-Jung (Leo) Lin <0xff07@gmail.com> Acked-by:
Todd Brandt <todd.e.brandt@linux.intel.com> Link: https://patch.msgid.link/20240825095353.7578-1-0xff07@gmail.com [ rjw: Subject and changelog edits ] Signed-off-by:
Rafael J. Wysocki <rafael.j.wysocki@intel.com>
-
- Aug 09, 2024
-
-
Aboorva Devarajan authored
Update cpuidle tool to display the residency value of cpuidle states. This addition provides a clearer and more detailed view of idle state information when using cpuidle-info. -------------------------------- Before Patch: -------------------------------- $ cpupower idle-info CPUidle driver: intel_idle CPUidle governor: menu analyzing CPU 28: Number of idle states: 3 Available idle states: POLL C1 C1E POLL: Flags/Description: CPUIDLE CORE POLL IDLE Latency: 0 Usage: 7448 Duration: 207170 C1: Flags/Description: MWAIT 0x00 Latency: 2 Usage: 7023 Duration: 3736853 C1E: Flags/Description: MWAIT 0x01 Latency: 10 Usage: 18468 Duration: 11396212 -------------------------------- After Patch: -------------------------------- $ cpupower idle-info CPUidle driver: intel_idle CPUidle governor: menu analyzing CPU 12: Number of idle states: 3 Available idle states: POLL C1 C1E POLL: Flags/Description: CPUIDLE CORE POLL IDLE Latency: 0 Residency: 0 Usage: 1950 Duration: 38458 C1: Flags/Description: MWAIT 0x00 Latency: 2 Residency: 2 Usage: 10688 Duration: 7133020 C1E: Flags/Description: MWAIT 0x01 Latency: 10 Residency: 20 Usage: 22356 Duration: 15687259 -------------------------------- Signed-off-by:
Aboorva Devarajan <aboorvad@linux.ibm.com> Signed-off-by:
Shuah Khan <skhan@linuxfoundation.org>
-
- Jul 26, 2024
-
-
Len Brown authored
Release 2024.07.26: Enable turbostat extensions to add both perf and PMT (Intel Platform Monitoring Technology) counters from the cmdline. Demonstrate PMT access with built-in support for Meteor Lake's Die%c6 counter. This commit: Clean up white-space nits introduced since version 2024.05.10 Signed-off-by:
Len Brown <len.brown@intel.com>
-
Patryk Wlazlyn authored
Some counters, like cpu/cache-misses/, expose and require umask=%x parameter alongside event=%x in the sysfs perf counter's event file. This change make sure we parse and use it when opening user added counters. Signed-off-by:
Patryk Wlazlyn <patryk.wlazlyn@linux.intel.com> Signed-off-by:
Len Brown <len.brown@intel.com>
-
Patryk Wlazlyn authored
Add a general description of the user interface for adding PMT counters with the new --add pmt,... option. Provide a complete example for requesting two counters. Signed-off-by:
Patryk Wlazlyn <patryk.wlazlyn@linux.intel.com> Signed-off-by:
Len Brown <len.brown@intel.com>
-
Patryk Wlazlyn authored
Provide a definition for metadata that allows reading DC6 residency counter via PMT and exposes it as a builtin counter. Note that this residency counter is updated and read via entirely different mechanisms vs the MSR-based residency counters. On MTL processors, there are times when Die%c6 will report above 100%. This is still useful, but don't expect 3 digits of precision... Signed-off-by:
Patryk Wlazlyn <patryk.wlazlyn@linux.intel.com> Signed-off-by:
Len Brown <len.brown@intel.com>
-
Patryk Wlazlyn authored
Allows users to read Intel PMT (Platform Monitoring Technology) counters, providing interface similar to one used to add MSR and perf counters. Because PMT is exposed as a raw MMIO range, without metadata, user has to supply the necessary information to find and correctly display the requested counter. Signed-off-by:
Patryk Wlazlyn <patryk.wlazlyn@linux.intel.com> Signed-off-by:
Len Brown <len.brown@intel.com>
-
Patryk Wlazlyn authored
Printing information about the source and value during initialization and reading of the counter for each cpu, while useful when debugging, results in too verbose output. Signed-off-by:
Patryk Wlazlyn <patryk.wlazlyn@linux.intel.com> Signed-off-by:
Len Brown <len.brown@intel.com>
-
Patryk Wlazlyn authored
This leaves the stdout cleaner, having only counter data. It makes it easier for programs to parse the output of turbostat, for example selftests. Signed-off-by:
Patryk Wlazlyn <patryk.wlazlyn@linux.intel.com> Signed-off-by:
Len Brown <len.brown@intel.com>
-
- Jul 09, 2024
-
-
Patryk Wlazlyn authored
"After" was missing an "r", nothing to see here. Signed-off-by:
Patryk Wlazlyn <patryk.wlazlyn@linux.intel.com> Signed-off-by:
Len Brown <len.brown@intel.com>
-
Patryk Wlazlyn authored
We had few lines about the feature, but without any complete examples. Signed-off-by:
Patryk Wlazlyn <patryk.wlazlyn@linux.intel.com> Signed-off-by:
Len Brown <len.brown@intel.com>
-
Patryk Wlazlyn authored
We had an extra "+" at the beginning of some lines that look like a poorly formated patch. Signed-off-by:
Patryk Wlazlyn <patryk.wlazlyn@linux.intel.com> Signed-off-by:
Len Brown <len.brown@intel.com>
-
Patryk Wlazlyn authored
User can now read perf counters using "--add perf/<device>/<event>". Other details work similarly to how --add works with MSRs. Signed-off-by:
Patryk Wlazlyn <patryk.wlazlyn@linux.intel.com> Signed-off-by:
Len Brown <len.brown@intel.com>
-
Patryk Wlazlyn authored
These three counters now are treated similar to other perf counters groups. This simplifies and gets rid of a lot of special cases for APERF and MPERF. Signed-off-by:
Patryk Wlazlyn <patryk.wlazlyn@linux.intel.com> Signed-off-by:
Len Brown <len.brown@intel.com>
-
- Jul 07, 2024
-
-
Srinivas Pandruvada authored
This version addresses one issue: - Fix updating TRL MSR after SST-TF is disabled in auto mode. Signed-off-by:
Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
-
Srinivas Pandruvada authored
When SST-TF is disabled in auto mode, the performance is getting limited. This is caused by wrong programming of Turbo Ratio Limit (TRL) MSR. This MSR always accepts the frequency ratio in 100 MHz unit. When the TPMI is sending TRL in 1 MHz unit, change to 100 MHz, before updating TRL MSR. Signed-off-by:
Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
-
- Jul 02, 2024
-
-
Roman Storozhenko authored
Invocation the tool built with the default settings fails: $ cpupower cpupower: error while loading shared libraries: libcpupower.so.1: cannot open shared object file: No such file or directory The issue is that Makefile puts the library to "/usr/lib64" dir for a 64 bit machine. This is wrong. According to the "File hierarchy standard specification: https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard https://refspecs.linuxfoundation.org/FHS_3.0/fhs-3.0.pdf "/usr/lib<qual>" dirs are intended for alternative-format libraries (e.g., "/usr/lib32" for 32-bit libraries on a 64-bit machine (optional)). The utility is built for the current machine and doesn't handle 'CROSS_COMPILE' and 'ARCH' env variables. It also doesn't change bit depth. So the result is always the same - binary for x86_64 architecture. Therefore the library should be put in the '/usr/lib' dir regardless of the build options. This is the case for all the distros that comply with the 'File Hierarchy Standard 3.0" by Linux Foundation. Most of the distros comply with it. For example, one can check this by examining the "/usr/lb64" dir on debian-based distros and find that it contains only "/usr/lib64/ld-linux-x86-64.so.2". And examine that "/usr/lib" contains both 32 and 64 bit code: find /usr/lib -name "*.so*" -type f | xargs file | grep 32-bit find /usr/lib -name "*.so*" -type f | xargs file | grep 64-bit Fix the issue by changing library destination dir to "/usr/lib". Signed-off-by:
Roman Storozhenko <romeusmeister@gmail.com> Signed-off-by:
Shuah Khan <skhan@linuxfoundation.org>
-
- Jun 28, 2024
-
-
Roman Storozhenko authored
Execution of the 'make' command in the 'bench' subfolder causes the following error: $ make O=cpupower/build/ DESTDIR=cpupower/install/ -j8 " CC " cpupower/build//main.o " CC " cpupower/build//parse.o /bin/sh: 1: " CC "cpupower/build//system.o CC : not found make: *** [Makefile:21: cpupower/build//main.o] Error 127 make: *** Waiting for unfinished jobs.... /bin/sh: 1: CC : not found /bin/sh: 1: CC : not found make: *** [Makefile:21: cpupower/build//parse.o] Error 127 make: *** [Makefile:21: cpupower/build//system.o] Error 127 The makefile uses variables defined in the main project makefile and it is not intended to run standalone. The reason is that 'bench' subproject depends on the 'libcpupower' library, see the 'compile-bench' target in the main makefile. Add a check that prevents standalone execution of the 'bench' makefile. Signed-off-by:
Roman Storozhenko <romeusmeister@gmail.com> Signed-off-by:
Shuah Khan <skhan@linuxfoundation.org>
-
Patryk Wlazlyn authored
It makes it harder to shoot yourself in the foot, by using additional __must_be_array() check. Signed-off-by:
Patryk Wlazlyn <patryk.wlazlyn@linux.intel.com> Signed-off-by:
Len Brown <len.brown@intel.com>
-
Patryk Wlazlyn authored
Reuse the enum. It means the same thing in both cases. Signed-off-by:
Patryk Wlazlyn <patryk.wlazlyn@linux.intel.com> Signed-off-by:
Len Brown <len.brown@intel.com>
-
Patryk Wlazlyn authored
fd_perf field used to be part of the union, but later moved out of it, because we test it with fd_perf != -1 to determine if any perf counter is opened, making the union unused. Signed-off-by:
Patryk Wlazlyn <patryk.wlazlyn@linux.intel.com> Signed-off-by:
Len Brown <len.brown@intel.com>
-
Patryk Wlazlyn authored
Fixes compilation errors for Makefile snapshot target described in: commit 231ce08b ("tools/power turbostat: Add "snapshot:" Makefile target") Signed-off-by:
Patryk Wlazlyn <patryk.wlazlyn@linux.intel.com> Signed-off-by:
Len Brown <len.brown@intel.com>
-
Tony Luck authored
New CPU #defines encode vendor and family as well as model. N.B. Copied VFM_*() defines here from <asm/cpu_device_id.h> to avoid an application picking a second internal kernel header file. Signed-off-by:
Tony Luck <tony.luck@intel.com> Acked-by:
Rafael J. Wysocki <rafael.j.wysocki@intel.com> Signed-off-by:
Len Brown <len.brown@intel.com>
-
Adam Hawley authored
Commit 78464d76 ("tools/power turbostat: Add columns for clustered uncore frequency") introduced 'probe_intel_uncore_frequency_cluster()' in a way which prevents printing uncore frequency columns if either of the '-q' or '-l' options are used. Systems which do not have multiple uncore frequencies per package are unaffected by this regression. Fix the function so that uncore frequency columns are shown when either the '-l' or '-q' option is used by checking if 'quiet' is true after adding counters for the uncore frequency columns. Fixes: 78464d76 ("tools/power turbostat: Add columns for clustered uncore frequency") Signed-off-by:
Adam Hawley <adam.james.hawley@intel.com> Signed-off-by:
Len Brown <len.brown@intel.com>
-
David Arcari authored
In some cases specifying the '-n' command line argument will cause turbostat to fail. For instance 'turbostat -n 1' works fine; however, 'turbostat -n 1 -d' will fail. This is the result of the first call to getopt_long_only() where "MP" is specified as the optstring. This can be easily fixed by changing the optstring from "MP" to "MPn:" to remove ambiguity between the arguments. tools/power turbostat: option '-n' is ambiguous; possibilities: '-num_iterations' '-no-msr' '-no-perf' Fixes: a0e86c90 ("tools/power turbostat: Add --no-perf option") Signed-off-by:
David Arcari <darcari@redhat.com> Signed-off-by:
Len Brown <len.brown@intel.com>
-
- Jun 20, 2024
-
-
Roman Storozhenko authored
There is a type 'enum operation_mode_e' contains the display modes of the 'monitor' subcommand. This type isn't used though, instead the variable 'mode' is of a simple 'int' type. Change 'mode' variable type from 'int' to 'enum operation_mode_e' in order to improve compiler type checking. Built and tested this with different monitor cmdline params. Everything works as expected, that is nothing changed and no regressions encountered. Signed-off-by:
Roman Storozhenko <romeusmeister@gmail.com> Signed-off-by:
Shuah Khan <skhan@linuxfoundation.org>
-
Roman Storozhenko authored
Remove not supported '-v' parameter from the cpupower's 'monitor' command description. There is a '-v' parameter described in cpupower's 'monitor' command man page. It isn't supported at the moment, and perhaps has never been supported. When I run the monitor with this parameter I get the following: $ sudo LD_LIBRARY_PATH=lib64/ bin/cpupower monitor -v monitor: invalid option -- 'v' invalid or unknown argument $ sudo LD_LIBRARY_PATH=lib64/ bin/cpupower monitor -V monitor: invalid option -- 'V' invalid or unknown argument Signed-off-by:
Roman Storozhenko <romeusmeister@gmail.com> Signed-off-by:
Shuah Khan <skhan@linuxfoundation.org>
-
- Jun 18, 2024
-
-
Roman Storozhenko authored
Enhance cpupower build process description with the information on building and installing the utility to the user defined directories as well as with the information on the way of running the utility from the custom defined installation directory. Signed-off-by:
Roman Storozhenko <romeusmeister@gmail.com> Signed-off-by:
Shuah Khan <skhan@linuxfoundation.org>
-
Roman Storozhenko authored
Make "cpupower" building process more user friendly by adding 'help' target to the main makefile. This target describes various build and cleaning options available to the user. Signed-off-by:
Roman Storozhenko <romeusmeister@gmail.com> Signed-off-by:
Shuah Khan <skhan@linuxfoundation.org>
-
Roman Storozhenko authored
Replace a dead reference link to a turbo boost technology description with a reference to a root page of the technology on the Intel site, and add another one, describing power management technology, which includes short description of the turbo boost. Signed-off-by:
Roman Storozhenko <romeusmeister@gmail.com> Signed-off-by:
Shuah Khan <skhan@linuxfoundation.org>
-
- Jun 07, 2024
-
-
Todd Brandt authored
sleepgraph/bootgraph function correctly in python3.12 but include a slew of deprecation warnings for unsupported regexes. This patch fixes up all the strings in the code so that it comforms with python3.12 standards. Signed-off-by:
Todd Brandt <todd.e.brandt@intel.com> Signed-off-by:
Rafael J. Wysocki <rafael.j.wysocki@intel.com>
-
Todd Brandt authored
- fix S3 suspend fail double run by using fp.flush to /sys/power/state - when running turbostat print the return value - handle case where html files have binary data - max issues in summary-issues is now 100 (in case there are thousands) - add backup to dmidecode, use /sys/class/dmi/id/ in case /dev/mem fails - update summary page to use full mode (disk-platform instead of disk) Signed-off-by:
Todd Brandt <todd.e.brandt@intel.com> Signed-off-by:
Rafael J. Wysocki <rafael.j.wysocki@intel.com>
-
- May 28, 2024
-
-
Dhananjay Ugwekar authored
Update cpupower's P-State frequency calculation and reporting with AMD Family 1Ah+ processors, when using the acpi-cpufreq driver. This is due to a change in the PStateDef MSR layout in AMD Family 1Ah+. Tested on 4th and 5th Gen AMD EPYC system Signed-off-by:
Ananth Narayan <Ananth.Narayan@amd.com> Signed-off-by:
Dhananjay Ugwekar <Dhananjay.Ugwekar@amd.com> Reviewed-by:
Mario Limonciello <mario.limonciello@amd.com> Signed-off-by:
Shuah Khan <skhan@linuxfoundation.org>
-