2c4627c8 | 02-Feb-2025 |
Len Brown <len.brown@intel.com> |
tools/power turbostat: version 2025.02.02
Summary of Changes since 2024.11.30:
Fix regression in 2023.11.07 that affinitized forked child in one-shot mode.
Harden one-shot mode against hotplug onl
tools/power turbostat: version 2025.02.02
Summary of Changes since 2024.11.30:
Fix regression in 2023.11.07 that affinitized forked child in one-shot mode.
Harden one-shot mode against hotplug online/offline
Enable RAPL SysWatt column by default.
Add initial PTL, CWF platform support.
Harden initial PMT code in response to early use.
Enable first built-in PMT counter: CWF c1e residency
Refuse to run on unsupported platforms without --force, to encourage updating to a version that supports the system, and to avoid no-so-useful measurement results.
Signed-off-by: Len Brown <len.brown@intel.com>
show more ...
|
5ce1e9bb | 17-Jan-2025 |
Patryk Wlazlyn <patryk.wlazlyn@linux.intel.com> |
tools/power turbostat: Add CPU%c1e BIC for CWF
Intel Clearwater Forest report PMT telemetry with GUID 0x14421519, which can be used to obtain module c1e residency counter of type tcore clock.
Add e
tools/power turbostat: Add CPU%c1e BIC for CWF
Intel Clearwater Forest report PMT telemetry with GUID 0x14421519, which can be used to obtain module c1e residency counter of type tcore clock.
Add early support for the counter by using heuristic that should work for the Clearwater Forest platforms.
Signed-off-by: Patryk Wlazlyn <patryk.wlazlyn@linux.intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
show more ...
|
5499b5ac | 28-Jan-2025 |
Len Brown <len.brown@intel.com> |
tools/power turbostat: Harden one-shot mode against cpu offline
when turbostat interval mode can't migrate to a CPU, it complains, prints no data, re-initializes with the new CPU configuration and s
tools/power turbostat: Harden one-shot mode against cpu offline
when turbostat interval mode can't migrate to a CPU, it complains, prints no data, re-initializes with the new CPU configuration and starts a new interval.
But this strategy in the face of a CPU hotplug offline during an interval doesn't help in one-shot mode. When the missing CPU is discovered at the end of the interval, the forked program has already returned and there is nothing left for a new interval to measure.
So instead of aborting get_coutners() and delta_cpu() if a missing CPU is detected, complain, but carry on and output what statistics are actually present.
Use the same strategy for delta_cpu when aperf:mperf are observed to have been reset -- complain, but carry on and print data for the CPUs that are still present.
Interval mode error handling is unchanged.
One-shot mode can now do this:
$ sudo chcpu -e 1 ; sudo ./turbostat --quiet --show PkgWatt,Busy%,CPU chcpu -d 1 CPU 1 enabled CPU 1 disabled get_counters: Could not migrate to CPU 1 ./turbostat: Counter reset detected 0.036920 sec CPU Busy% PkgWatt - 0.00 10.00 0 99.73 10.00 1 0.00 2 91.53 3 16.83
Suggested-by: Zhang Rui <rui.zhang@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
show more ...
|
b32c3697 | 27-Jan-2025 |
Len Brown <len.brown@intel.com> |
tools/power turbostat: Fix forked child affinity regression
In "one-shot" mode, turbostat 1. takes a counter snapshot 2. forks and waits for a child 3. takes the end counter snapshot and prints the
tools/power turbostat: Fix forked child affinity regression
In "one-shot" mode, turbostat 1. takes a counter snapshot 2. forks and waits for a child 3. takes the end counter snapshot and prints the result.
But turbostat counter snapshots currently use affinity to travel around the system so that counter reads are "local", and this affinity must be cleared between #1 and #2 above.
The offending commit removed that reset that allowed the child to run on cpu_present_set.
Fix that issue, and improve upon the original by using cpu_possible_set for the child. This allows the child to also run on CPUs that hotplug online during its runtime.
Reported-by: Zhang Rui <rui.zhang@intel.com> Fixes: 7bb3fe27ad4f ("tools/power/turbostat: Obey allowed CPUs during startup") Signed-off-by: Len Brown <len.brown@intel.com>
show more ...
|
1a202afe | 17-Jan-2025 |
Patryk Wlazlyn <patryk.wlazlyn@linux.intel.com> |
tools/power turbostat: Add tcore clock PMT type
Some PMT counters, for example module c1e residency on Intel Clearwater Forest, are reported using tcore clock type.
Signed-off-by: Patryk Wlazlyn <p
tools/power turbostat: Add tcore clock PMT type
Some PMT counters, for example module c1e residency on Intel Clearwater Forest, are reported using tcore clock type.
Signed-off-by: Patryk Wlazlyn <patryk.wlazlyn@linux.intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
show more ...
|
a80e5347 | 03-Dec-2024 |
Len Brown <len.brown@intel.com> |
tools/power turbostat: version 2025.01.14
Fix checkpatch whitespace issues since 2024.11.30
Summary of Changes since 2024.11.30:
Enable SysWatt by default.
Add initial PTL, CWF platform support
tools/power turbostat: version 2025.01.14
Fix checkpatch whitespace issues since 2024.11.30
Summary of Changes since 2024.11.30:
Enable SysWatt by default.
Add initial PTL, CWF platform support.
Refuse to run on unsupported platforms without --force to avoid not-so-useful measurements mistakenly made using obsolete versions.
Harden initial PMT code in response to early use.
Signed-off-by: Len Brown <len.brown@intel.com>
show more ...
|
83fbeb9f | 12-Dec-2024 |
Patryk Wlazlyn <patryk.wlazlyn@linux.intel.com> |
tools/power turbostat: Allow adding PMT counters directly by sysfs path
Allow user to add PMT counters by either identifying the source with: guid=%u,seq=%u or, since this patch, with direct sysfs
tools/power turbostat: Allow adding PMT counters directly by sysfs path
Allow user to add PMT counters by either identifying the source with: guid=%u,seq=%u or, since this patch, with direct sysfs path: path=%s, for example path=/sys/class/intel_pmt/telem5
In the later case, the guid and sequence number will be infered by turbostat.
Signed-off-by: Patryk Wlazlyn <patryk.wlazlyn@linux.intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
show more ...
|
16ce4678 | 06-Dec-2024 |
Patryk Wlazlyn <patryk.wlazlyn@linux.intel.com> |
tools/power turbostat: Allow mapping multiple PMT files with the same GUID
Some platforms may expose multiple telemetry files identified with the same GUID. Interpreting it correctly, to associate g
tools/power turbostat: Allow mapping multiple PMT files with the same GUID
Some platforms may expose multiple telemetry files identified with the same GUID. Interpreting it correctly, to associate given counter with a CPU, core or a package requires more metadata from the user.
Parse and create ordered, linked list of those PMT aggregators, so that we can identify specific aggregator with GUID + sequence number.
Signed-off-by: Patryk Wlazlyn <patryk.wlazlyn@linux.intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
show more ...
|
4265a865 | 12-Dec-2024 |
Patryk Wlazlyn <patryk.wlazlyn@linux.intel.com> |
tools/power turbostat: Add PMT directory iterator helper
PMT directories exposed in sysfs use the following pattern: telem%u for example: telem0, telem2, telem3, ..., telem15, telem16
This nami
tools/power turbostat: Add PMT directory iterator helper
PMT directories exposed in sysfs use the following pattern: telem%u for example: telem0, telem2, telem3, ..., telem15, telem16
This naming scheme preserves the ordering from the PCIe discovery, which is important to correctly map the telemetry directory to the specific domain (cpu, core, package etc).
Because readdir() traverses the entries in alphabetical order, causing for example "telem13" to be traversed before "telem3", it is necessary to use scandir() with custom compare() callback to preserve the PCIe ordering.
Signed-off-by: Patryk Wlazlyn <patryk.wlazlyn@linux.intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
show more ...
|
089134cb | 10-Dec-2024 |
Patryk Wlazlyn <patryk.wlazlyn@linux.intel.com> |
tools/power turbostat: Extend PMT identification with a sequence number
When platforms expose multiple PMT aggregators with the same GUID, the only way to identify them and map to specific domain is
tools/power turbostat: Extend PMT identification with a sequence number
When platforms expose multiple PMT aggregators with the same GUID, the only way to identify them and map to specific domain is by reading them in an order they were exposed via PCIe. Intel PMT kernel driver does keep the same order and numbers the telemetry directories accordingly.
Use GUID and sequence number (order) to uniquely identify PMT aggregators.
Signed-off-by: Patryk Wlazlyn <patryk.wlazlyn@linux.intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
show more ...
|
34537ddd | 10-Dec-2024 |
Patryk Wlazlyn <patryk.wlazlyn@linux.intel.com> |
tools/power turbostat: Return default value for unmapped PMT domains
When requesting PMT counters with --add command, user may want to skip specifying values for all the domains (that is, cpu, core,
tools/power turbostat: Return default value for unmapped PMT domains
When requesting PMT counters with --add command, user may want to skip specifying values for all the domains (that is, cpu, core, package etc). For the domains that user did not provide information on how to read the counter, return default value - zero.
Signed-off-by: Patryk Wlazlyn <patryk.wlazlyn@linux.intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
show more ...
|
7c6fee25 | 14-Jan-2025 |
Patryk Wlazlyn <patryk.wlazlyn@linux.intel.com> |
tools/power turbostat: Check for non-zero value when MSR probing
For some MSRs, for example, the Platform Energy Counter (RAPL PSYS), it is required to additionally check for a non-zero value to con
tools/power turbostat: Check for non-zero value when MSR probing
For some MSRs, for example, the Platform Energy Counter (RAPL PSYS), it is required to additionally check for a non-zero value to confirm that it is present.
From Intel SDM vol. 4:
Platform Energy Counter (R/O) This MSR is valid only if both platform vendor hardware implementation and BIOS enablement support it. This MSR will read 0 if not valid.
Signed-off-by: Patryk Wlazlyn <patryk.wlazlyn@linux.intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
show more ...
|
1af5baed | 08-Jan-2025 |
Zhang Rui <rui.zhang@intel.com> |
tools/power turbostat: Enhance turbostat self-performance visibility
Include procfs and sysfs data collection time in the system summary row of the "usec" column. This is useful for isolating where
tools/power turbostat: Enhance turbostat self-performance visibility
Include procfs and sysfs data collection time in the system summary row of the "usec" column. This is useful for isolating where the time goes during turbostat data collection.
Background:
Column "usec" shows 1. the number of microseconds elapsed during counter collection, including thread migration -- if any, for each CPU row. 2. total elapsed time to collect the counters on all cpus, for the summary row. This can be used to check the time cost of a give column. For example, run below commands separately turbostat --show usec sleep 1 turbostat --show usec,CoreTmp sleep 1 and the delta in the usec column will tell the time cost for CoreTmp (Thermal MSR read)
Problem:
Some of the kernel procfs/sysfs accesses are expensive, especially on high core count systems. "usec" column cannot tell this because it only includes the time cost of the counters.
Solution:
Leave the per CPU "usec" as it is and modify the summary "usec" to include the time cost of the procfs/sysfs snapshot.
With it, the "usec" column can be used to get 1. the baseline, e.g. turbostat --show usec sleep 1 2. the baseline + some per CPU counter cost, e.g. turbostat --show usec,CoreTmp sleep 1 3. the baseline + some per CPU sysfs cost, e.g. turbostat --show usec,C1 sleep 1 4. the baseline + /proc/interrupts cost, e.g turbostat --show usec,IRQ sleep 1
Man-page update is also included.
Signed-off-by: Zhang Rui <rui.zhang@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
show more ...
|
debe797c | 05-Dec-2024 |
Patryk Wlazlyn <patryk.wlazlyn@linux.intel.com> |
tools/power turbostat: Add fixed RAPL PSYS divisor for SPR
Intel Sapphire Rapids is an exception and has fixed divisor for RAPL PSYS counter set to 1.0. Add a platform bit and enable it for SPR.
Re
tools/power turbostat: Add fixed RAPL PSYS divisor for SPR
Intel Sapphire Rapids is an exception and has fixed divisor for RAPL PSYS counter set to 1.0. Add a platform bit and enable it for SPR.
Reported-by: Zhang Rui <rui.zhang@intel.com> Signed-off-by: Patryk Wlazlyn <patryk.wlazlyn@linux.intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
show more ...
|
2f60f039 | 20-Dec-2024 |
Patryk Wlazlyn <patryk.wlazlyn@linux.intel.com> |
tools/power turbostat: Fix PMT mmaped file size rounding
This (the old code) is just not how you round up to a page size. Noticed on a recent Intel platform. Previous ones must have been reporting s
tools/power turbostat: Fix PMT mmaped file size rounding
This (the old code) is just not how you round up to a page size. Noticed on a recent Intel platform. Previous ones must have been reporting sizes already aligned to a page and so the bug was missed when testing.
Fixes: f0e4ed752fda ("tools/power turbostat: Add early support for PMT counters") Signed-off-by: Patryk Wlazlyn <patryk.wlazlyn@linux.intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
show more ...
|
4a358ba2 | 18-Dec-2024 |
Patryk Wlazlyn <patryk.wlazlyn@linux.intel.com> |
tools/power turbostat: Remove SysWatt from DISABLED_BY_DEFAULT
The counter is present on most supporting Intel platforms and provides useful data to the user. There is no reason to disable the count
tools/power turbostat: Remove SysWatt from DISABLED_BY_DEFAULT
The counter is present on most supporting Intel platforms and provides useful data to the user. There is no reason to disable the counter by default.
Signed-off-by: Patryk Wlazlyn <patryk.wlazlyn@linux.intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
show more ...
|
22a83528 | 18-Dec-2024 |
Len Brown <len.brown@intel.com> |
tools/power turbostat: Add an NMI column
Add an NMI column, a proper sub-set of the IRQ column.
It would be preferable if the kernel exported /sys/kernel/irq/NMI/per_cpu_count.
But since we are al
tools/power turbostat: Add an NMI column
Add an NMI column, a proper sub-set of the IRQ column.
It would be preferable if the kernel exported /sys/kernel/irq/NMI/per_cpu_count.
But since we are already forced to parse /proc/interrupts, noticing which row is the NMI is simple enough.
Suggested-by: Artem Bityutskiy <artem.bityutskiy@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
show more ...
|
05c14d8f | 10-Dec-2024 |
Len Brown <len.brown@intel.com> |
tools/power turbostat: add Busy% to "show idle"
Suggested-by: Artem Bityutskiy <artem.bityutskiy@intel.com> Signed-off-by: Len Brown <len.brown@intel.com> |
3d94026a | 03-Dec-2024 |
Zhang Rui <rui.zhang@intel.com> |
tools/power turbostat: Introduce --force parameter
Turbostat currently exits under the following conditions: 1. When running on non-Intel/AMD/Hygon x86 vendors. 2. When running on Intel models that
tools/power turbostat: Introduce --force parameter
Turbostat currently exits under the following conditions: 1. When running on non-Intel/AMD/Hygon x86 vendors. 2. When running on Intel models that lack specific platform features.
Introduce a new `--force` parameter that allows turbostat to run on these unsupported platforms with minimal default feature support. This provides users with the flexibility to gather basic information even on unsupported systems.
[lenb: updated warning message text]
Signed-off-by: Zhang Rui <rui.zhang@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
show more ...
|
cc63f89e | 03-Dec-2024 |
Zhang Rui <rui.zhang@intel.com> |
tools/power turbostat: Improve --help output
Improve the `--help` output of turbostat by standardizing the format and enhancing readability. The following changes are made to ensure consistency and
tools/power turbostat: Improve --help output
Improve the `--help` output of turbostat by standardizing the format and enhancing readability. The following changes are made to ensure consistency and clarity in the help message: 1. Use a consistent pattern for each parameter's help message: - Display the parameter and its input (if any) on the same line, separated by a space. - Provide the detailed description on a separate line. 2. Ensure that the first character of each description is in lower-case.
These changes make the help output more uniform and easier to read, helping users quickly understand the available options and their usage.
No functional change.
Signed-off-by: Zhang Rui <rui.zhang@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
show more ...
|
48c62ba1 | 03-Dec-2024 |
Zhang Rui <rui.zhang@intel.com> |
tools/power turbostat: Exit on unsupported Vendors
Turbostat currently supports x86 processors from Intel, AMD, and Hygon. The behavior of turbostat on CPUs from other vendors has not been evaluated
tools/power turbostat: Exit on unsupported Vendors
Turbostat currently supports x86 processors from Intel, AMD, and Hygon. The behavior of turbostat on CPUs from other vendors has not been evaluated and may lead to incorrect or undefined behavior.
Enhance turbostat to exit by default when running on an unsupported CPU vendor. This ensures that users are aware that their CPU is not currently supported by turbostat, guiding them to seek support for their specific hardware through future patches.
Signed-off-by: Zhang Rui <rui.zhang@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
show more ...
|
4133be39 | 03-Dec-2024 |
Zhang Rui <rui.zhang@intel.com> |
tools/power turbostat: Exit on unsupported Intel models
Turbostat requires per-platform enabling for Intel CPU models due to platform-specific features. When running on unsupported Intel CPU models,
tools/power turbostat: Exit on unsupported Intel models
Turbostat requires per-platform enabling for Intel CPU models due to platform-specific features. When running on unsupported Intel CPU models, turbostat currently operates with limited default features, which can lead to users unknowingly using an outdated version of the tool.
Enhance turbostat to exit by default when run on unsupported Intel CPU models, with a clear message to users, informing them that their CPU model is not supported and advising them to update to the latest version of turbostat for full functionality.
[lenb: updated error message wording]
Signed-off-by: Zhang Rui <rui.zhang@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
show more ...
|
9e47f8ad | 03-Dec-2024 |
Len Brown <len.brown@intel.com> |
tools/power turbostat: update turbostat(8)
Clarify how to get the latest version.
Signed-off-by: Len Brown <len.brown@intel.com> |
6b47ed23 | 03-Dec-2024 |
Zhang Rui <rui.zhang@intel.com> |
tools/power turbostat: Add initial support for ClearwaterForest
Add initial support for ClearwaterForest. It shares the same features with SierraForest.
Signed-off-by: Zhang Rui <rui.zhang@intel.co
tools/power turbostat: Add initial support for ClearwaterForest
Add initial support for ClearwaterForest. It shares the same features with SierraForest.
Signed-off-by: Zhang Rui <rui.zhang@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
show more ...
|
e8a99af6 | 03-Dec-2024 |
Zhang Rui <rui.zhang@intel.com> |
tools/power turbostat: Add initial support for PantherLake
Add initial support for PantherLake. It shares the same features with Lunarlake.
Signed-off-by: Zhang Rui <rui.zhang@intel.com> Signed-off
tools/power turbostat: Add initial support for PantherLake
Add initial support for PantherLake. It shares the same features with Lunarlake.
Signed-off-by: Zhang Rui <rui.zhang@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
show more ...
|