Commit Graph

258 Commits

Author SHA1 Message Date
Srinivas Pandruvada
ee69d9e32b tools/power/x86/intel-speed-select: v1.26 release
This version includes the following changes:
- Setting current base frequency as maximum for SST-BF with
kernel QOS changes
- Harmonize extended family decoded with the rest of the kernel
- Minor changes for error codes and messages

Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
2026-04-05 11:54:25 -07:00
Zhang Rui
1b25f03f3d tools/power/x86/intel-speed-select: Fix output when running on unsupported CLX platforms
When running intel-speed-select on unsupported CLX platforms, it prints
 intel-speed-select: Invalid CPU model (85)
 : Success
Because this is not a system error and errno is not set.

Replace err() with exit().

Signed-off-by: Zhang Rui <rui.zhang@intel.com>
Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
2026-04-05 11:48:17 -07:00
Zhang Rui
93f5b44b41 tools/power/x86/intel-speed-select: Print Version info when Incompatible API version is detected
When running an old version intel-speed-select tool on newer platforms,
even with "intel-speed-select -v", the tool only complains about
"Incompatible API version", without giving the current version info.

Print Version info whenever Incompatible API version is detected.

Signed-off-by: Zhang Rui <rui.zhang@intel.com>
Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
2026-04-05 11:47:19 -07:00
Zhang Rui
3e244dd513 tools/power/x86/intel-speed-select: Fix some program return value
When running the "intel-speed-select -h" command, it returns
1. 0 when using a version that is API incompatible.
2. 1 when using a version that is API compatible.
And this is confusing.

Fix the program to return 0 for "-h" parameter, and return 1 whenever
"Incompatible API versions" is detected.

Signed-off-by: Zhang Rui <rui.zhang@intel.com>
Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
2026-04-05 11:46:21 -07:00
Zhang Rui
df4a835431 tools/power/x86/intel-speed-select: Fix cpu extended family ID decoding
When decode and use CPU extended family ID in intel-speed-select, there
are several potential issues,
1. Mask with 0x0f to get CPU extended family ID is bogus because
   CPU extended family ID takes 8 bits (bit 27:20).
2. Use CPU extended family ID fields without checking CPU family ID is
   risky. Because Intel SDM says, "The Extended Family ID needs to be
   examined only when the Family ID is 0FH."
3. Saving cpu family ID and cpu extended family ID separately doesn't
   align with Linux kernel. And it may bring extra complexity when
   making family specific changes in the future.

Signed-off-by: Zhang Rui <rui.zhang@intel.com>
Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
2026-04-05 11:44:38 -07:00
Srinivas Pandruvada
ae67f58239 tools/power/x86/intel-speed-select: Avoid current base freq as maximum
SST-PP level change results in online/offline of CPUs with -o option.
The Linux intel-pstate driver internally stores the current HWP_REQ MSR
value during offline and restores them during online.

It is possible that during SST-PP level change, the new HWP_CAP limits
can be updated. So, when a CPU is online, the HWP_REQ MSR should be
updated to new values based on HWP_CAP values.

This is particularly problematic when either turbo is disabled or the
current HWP_REQ value (stored before online) is less than the base
frequency from the updated HWP_CAP MSR guaranteed value. If the HWP_REQ
MSR is not updated, then the performance will be limited to the value
before perf level change.

Hence the tool updates cpufreq scaling_max_freq to the newer
base_frequency value in this case. This step is not required when HWP
interrupts are enabled, as the perf level change should result in a new
interrupt with HWP_GUARANTEED_PERF_CHANGE_STATUS and the intel_pstate
driver will update to new limits.

But the tool needs to handle the case when HWP interrupts are not
enabled but there is no way for the tool to know that HWP interrupts are
enabled or not. So, it has to still update the scaling_max_freq.

With the QOS changes in the kernel, user space writes to scaling_max_freq
are treated as hard limits. So, when base frequency is increased with
SST-BF enabled, the cpufreq subsystem will still not allow setting to the
SST-BF high priority core frequency. So, the HWP_REQ MSR will still be
capped to the user-set scaling_max_freq after SST-PP level change.

To address this, instead of setting scaling_max_freq to the current HWP_CAP
highest frequency, set it to the maximum integer value to set the QOS limit
as unconstrained. In this case, the actual HWP_REQ maximum frequency will
still be capped to HWP_CAP highest performance by the intel-pstate driver.
So, it will not result in invalid HWP_REQ values.

Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
2026-04-05 11:44:13 -07:00
Srinivas Pandruvada
6142b726e6 tools/power/x86/intel-speed-select: v1.25 release
This version includes the following changes:
- Allow read only commands for non root users when permitted
- Fix file descriptor leak in isolate_cpus()
- Replace hardcoded libnl3 include path

Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
2026-01-16 16:03:21 -08:00
Malaya Kumar Rout
56c17ee151 tools/power/x86/intel-speed-select: Fix file descriptor leak in isolate_cpus()
The file descriptor opened in isolate_cpus() when (!level) is true was
not being closed before returning, causing a file descriptor leak in
both the error path and the success path.

When write() fails at line 950, the function returns at line 953 without
closing the file descriptor. Similarly, on success, the function returns
at line 956 without closing the file descriptor.

Add close(fd) calls before both return statements to fix the resource
leak. This follows the same pattern used elsewhere in the same function
where file descriptors are properly closed before returning (see lines
1005 and 1027).

Fixes: 997074df65 ("tools/power/x86/intel-speed-select: Use cgroup v2 isolation")
Signed-off-by: Malaya Kumar Rout <mrout@redhat.com>
Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
2026-01-16 16:03:21 -08:00
Khem Raj
21adcd5ec9 tools/power/x86/intel-speed-select: Use pkg-config for libnl-3.0 detection
Replace hardcoded libnl3 include path with pkg-config detection to
improve portability across different distributions and build environments.

The previous implementation used a fixed path constructed from the
compiler's sysroot, which could fail on systems with non-standard
library installations. Now the build system:
- Attempts to detect libnl-3.0 include paths using pkg-config
- Falls back to /usr/include/libnl3 if pkg-config is unavailable
- Maintains backward compatibility with existing build configurations

This ensures the tool builds correctly on a wider range of systems
while preserving existing behavior when pkg-config is not present.

Closes:https://bugzilla.kernel.org/show_bug.cgi?id=220819
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
2026-01-16 16:03:20 -08:00
Srinivas Pandruvada
6588b8845e tools/power/x86/intel-speed-select: Allow non root users
When permitted by the file /dev/isst_interface, allow to issue commands
for non root users.

When user id is non root, check if  "/dev/isst_interface" can still be
opened. If this file can be opened, allow all read only commands.

Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
2026-01-16 16:03:20 -08:00
Srinivas Pandruvada
ad374eb9b3 tools/power/x86/intel-speed-select: v1.24 release
This version includes the following changes:
- Check feature status to check if the feature enablement was successful
- Reset SST-TF bucket structure to display valid bucket info

Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
2025-12-03 08:29:13 -08:00
Srinivas Pandruvada
3bd486e2d9 tools/power/x86/intel-speed-select: Reset isst_turbo_freq_info for invalid buckets
With SST-TF version 2 only 3 buckets are present. The information in
others buckets can be junk. So initialize the info structure of type
isst_turbo_freq_info, before issing ioctl to get bucket information.

Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
2025-12-03 08:29:13 -08:00
Srinivas Pandruvada
6dc93d6890 tools/power/x86/intel-speed-select: Check feature status
After change of enable/disable status of SST-CP, SST-TF and SST-BF
check if the hardware status change was successful. If not successful
even after retries, return failure.

Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
2025-12-03 08:29:13 -08:00
Srinivas Pandruvada
6dfe26cb1c tools/power/x86/intel-speed-select: v1.23 release
This version includes the following changes:
- Displays SST-PP2 revision fields.
- Skips updating uncore frequency limits on newer generations of CPUs.

Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
2025-05-09 11:12:31 -07:00
Srinivas Pandruvada
51272ca7c3 tools/power/x86/intel-speed-select: Skip uncore frequency update
On SST PP level switch, skip adjusting the uncore frequency limit and
allow the hardware to handle this on newer platforms.

As newer generations of CPUs have changed the extended family identifier,
use this identifier to exclude the update.

Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
2025-05-09 11:04:19 -07:00
Srinivas Pandruvada
5aa63cab70 tools/power/x86/intel-speed-select: Support SST PP revision 2 fields
Display fields added by SST PP revision 2. They include:
uncore P0 (max frequency), P1 (base frequency) and Pm (min frequency)
for uncore fabric 1.

Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
2025-05-09 10:58:39 -07:00
Srinivas Pandruvada
7dd556365b tools/power/x86/intel-speed-select: v1.22 release
This version has fix for:
- Display of die ID and optimize array size for multi package
systems.
- Fix build warning with cross compiler

Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
2025-03-07 08:00:21 -08:00
Khem Raj
8d9cfb6d71 tools/power/x86/intel-speed-select: Prefix header search path with sysroot
This helps when using a cross-compiler for building intel-speed-select,
currently, its hardcoded to pick libnl3 headers from build host which may
not be same as build target when cross compiling.

cc -print-sysroot will print nothing if compiler is configured without
a sysroot and result in same string as it is now.

Fixes errors with gcc configured with host include poisoning e.g.

cc1: error: include location "/usr/include/libnl3" is unsafe for
 cross-compilation [-Werror=poison-system-directories]

Signed-off-by: Khem Raj <raj.khem@gmail.com>
[ srinivas: Changelog edits for checkpatch warning ]
Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
2025-03-07 08:00:21 -08:00
Srinivas Pandruvada
7ad93737dd tools/power/x86/intel-speed-select: Die ID for IO dies
Instead of displaying "-1" for IO dies, display "IO".

Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
2025-03-07 08:00:21 -08:00
Srinivas Pandruvada
c49e805db3 tools/power/x86/intel-speed-select: Fix the condition to check multi die system
Even when there is no die exported by CPUID leaf 0x1F, the kernel version
after 6.9 will show non zero die_id in the sysfs. In that case maximum
die_id can still match maximum power domain ID. So the condition to check
if the power domain ID is same a die_id to prevent duplicate display
doesn't hold true.

The better condition is to check if the maximum die_id is more than the
maximum package_id. If the die_id is exposed by CPUID leaf 0x1F, the
maximum die_id will be more than maximum package_id.

With this change tracking of max_punit_id is not used, so remove storing
max_punit_id.

Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
2025-03-07 08:00:21 -08:00
Srinivas Pandruvada
d74e6e29d2 tools/power/x86/intel-speed-select: Prevent increasing MAX_DIE_PER_PACKAGE
In the function for_each_online_power_domain_in_set() to pick one CPU
from each power domain a three-dimensional array is used, which assumes
that a package contains multiple dies, that means the die_id from
/sys/devices/system/cpu/cpu0/topology/die_id is only local to package.

If it is not unique, still there will be no functional issues in the
current generation of products, but the MAX_DIE_PER_PACKAGE will need to
be increased for future products with many packages.

After kernel version 6.9 die ID is unique system wide not per package.
Even if the CPU topology has no dies, the ID will still increment across
package. In this case the die_id in package 0 will be 0 and die_id in
package 1 will be 1 in a 2-package system.

Since the die count must be same for packages, just count the number of
dies in package 0 and calculate die index from
/sys/devices/system/cpu/cpu0/topology/die_id which is only unique within
a package.

In this way the array size
"int cpus[MAX_PACKAGE_COUNT][MAX_DIE_PER_PACKAGE][MAX_PUNIT_PER_DIE]"
doesn't have to increase with increasing package count.

No functional change is expected.

Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
2025-03-07 08:00:21 -08:00
Srinivas Pandruvada
600c8f2431 tools/power/x86/intel-speed-select: v1.21 release
This version has one fix:
- Fix restoring TRL after SST-TF disable

Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
2025-01-03 06:29:03 -08:00
Srinivas Pandruvada
991c8aacfb tools/power/x86/intel-speed-select: Fix TRL restore after SST-TF disable
When SST-TF is disabled, the TRL (Turbo Ratio Limit) of config level 0
is getting restored. But the TRL of current level should be restored
which may not be config level 0.

This is caused by a bug in treating config level as TRL level. So
arguments needs to be swapped.

Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
2025-01-03 06:29:02 -08:00
Srinivas Pandruvada
d8d4f57ed6 tools/power/x86/intel-speed-select: v1.20 release
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>
2024-07-07 00:38:57 -07:00
Srinivas Pandruvada
fd77d7fde0 tools/power/x86/intel-speed-select: Set TRL MSR in 100 MHz units
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>
2024-07-07 00:36:47 -07:00
Srinivas Pandruvada
5cfac5abb6 tools/power/x86/intel-speed-select: v1.19 release
This version addresses issues with:
- Support of SST BF/TF support per level
- Increase number of CPUs displayed
- Present all TRL levels for turbo-freq
- Fix display for unsupported levels
- Support multiple dies
- Increase die count
- Change CPU display for non compute domain

Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2024-04-29 13:31:50 +02:00
Srinivas Pandruvada
8ebc39ace3 tools/power/x86/intel-speed-select: Display CPU as None for -1
When there is no CPU in a power domain, display "None" instead of -1.

Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2024-04-29 13:31:50 +02:00
Srinivas Pandruvada
1fcf670e50 tools/power/x86/intel-speed-select: SST BF/TF support per level
SST BF and TF can be enabled/disabled per level. So check the current
level support from the mask of supported levels.

This change from a single level to mask for info.sst_tf_support and
info.sst_tf_support is indicated by API version change. Use as mask for
API version above 2. In this way there is no change in behavior when
running on older kernel with API version 2.

Since the tool can support now API version 3, update the supported API
version.

Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2024-04-29 13:31:50 +02:00
Srinivas Pandruvada
80a513e3f7 tools/power/x86/intel-speed-select: Increase number of CPUs displayed
Currently max 128 CPUs can be displayed in the enable CPU list. Double
the range. Since the size is big for stack allocation, change to static.
Here changing to static is fine as these functions are called in serial.

Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2024-04-29 13:31:50 +02:00
Srinivas Pandruvada
38fa152b3d tools/power/x86/intel-speed-select: Present all TRL levels for turbo-freq
For turbo-freq feature, only 3 levels of frequencies are displayed even
if platform support more. Present all levels based on the CPU model.

Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2024-04-29 13:31:50 +02:00
Srinivas Pandruvada
55d5639bda tools/power/x86/intel-speed-select: Fix display for unsupported levels
During call to "intel-speed-select turbo-freq info" some junk values are
reported for unsupported levels. Initialize the structure fact_info with
0s, so that isst_fact_display_information() will skip "0" values in the
frequency.

Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2024-04-29 13:31:50 +02:00
Srinivas Pandruvada
f926447133 tools/power/x86/intel-speed-select: Support multiple dies
When the die id is same as punit compute die ID, treat them same. In this
case, when for_each_online_power_domain_in_set() is called, then don't
loop for each punit in a die. Just loop for all punits in a package.

Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2024-04-29 13:31:49 +02:00
Srinivas Pandruvada
9ea48bdfd5 tools/power/x86/intel-speed-select: Increase die count
TPMI platform information supports up to 16 compute dies. So increase the
range.

Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2024-04-29 13:31:49 +02:00
Srinivas Pandruvada
a590ed6226 tools/power/x86/intel-speed-select: v1.18 release
This version addresses issues with:
- When CPU 0 hotplug is not possible, try cgroup v2 isolation
without any user input
- Fix turbo mode enable/disable swapped
- Sanitize command line integer and hex arguments
- Add more error messages
- Increase CPU count in one request

Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
2023-10-17 14:54:44 -07:00
Srinivas Pandruvada
3bc0f20a8c tools/power/x86/intel-speed-select: Use cgroup isolate for CPU 0
From kernel version 6.5, CPU 0 hotplug capability is deprecated.
If some SST profile doesn't have CPU 0, then it is no longer possible to
offline CPU 0. This means that user space threads will still run on
CPU 0.

To workaround this issue, use cgroup v2 isolation feature. Whenever there
/sys/devices/system/cpu/cpu0/online file is absent or open fails, isolate
CPU 0 via CPU cgroup v2 isolation. Also add a command line option to
force even if the /sys/devices/system/cpu/cpu0/online is present.

The previous commit "01bcb56f059e ("tools/power/x86/intel-speed-select:
Prevent CPU 0 offline") was just warning about this issue based on the
kernel version 6.5 and above. With this new approach, instead of warning
take action to mitigate the issue.

Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
2023-10-17 11:55:37 -07:00
Srinivas Pandruvada
bc5370cca0 tools/power/x86/intel-speed-select: Increase max CPUs in one request
With the increase in the CPU count, this count needs to be updated.
Increase max CPU count to 512.

Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
2023-10-17 11:55:37 -07:00
Srinivas Pandruvada
da4c1b9e8f tools/power/x86/intel-speed-select: Display error for core-power support
When core-power is getting enabled, if the feaure is not supported,
display error.

Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
2023-10-17 11:55:37 -07:00
Srinivas Pandruvada
2fe8d2d791 tools/power/x86/intel-speed-select: No TRL for non compute domains
Don't call to set or get TRL for domains in which there are no CPUs.

Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
2023-10-17 11:55:37 -07:00
Srinivas Pandruvada
7b00d1018c tools/power/x86/intel-speed-select: turbo-mode enable disable swapped
The command for turbo-mode enable and disable is swapped. Fix that.
Previously turbo-mode enable was actually disabling and disable was
enabling.

Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
2023-10-17 11:55:37 -07:00
Srinivas Pandruvada
3076db34b5 tools/power/x86/intel-speed-select: Update help for TRL
TRL (turbo ratio limit) argument is passed in hex string. Clarify that
in the help.

Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
2023-10-17 11:55:37 -07:00
Srinivas Pandruvada
61f3d868b3 tools/power/x86/intel-speed-select: Sanitize integer arguments
If the command takes some integer arguments, make sure the command
contains only digits. Same for Hex arguments. Otherwise return error.

Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
2023-10-17 11:55:37 -07:00
Srinivas Pandruvada
2fff509adc tools/power/x86/intel-speed-select: v1.17 release
This version addresses issues with:
- CPU count display for power domain != 0
- Support more than 8 sockets
- Error on max CPU count exceeds in one request
- Prevent trying CPU 0 hotplug for kernel version 6.5 or later
- Change mem-frequency display to max-mem-frequency

Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
2023-08-09 08:57:58 -07:00
Srinivas Pandruvada
dde9293b62 tools/power/x86/intel-speed-select: Change mem-frequency display name
The mem-frequency displayed by each profile is not the actual memory
frequency of DIMMs, but the maximum the CPU can support.

Change the mem-frequency field to max-mem-frequency.

Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
2023-08-09 08:57:32 -07:00
Srinivas Pandruvada
01bcb56f05 tools/power/x86/intel-speed-select: Prevent CPU 0 offline
Kernel 6.5 version deprecated CPU 0 hotplug. This will cause all
requests to fail to offline CPU 0. Check version number of kernel
and ignore CPU 0 hotplug request with debug aid to use cgroup
isolation feature for CPU 0.

Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
2023-08-08 15:16:40 -07:00
Srinivas Pandruvada
e67b6ed2bb tools/power/x86/intel-speed-select: Error on CPU count exceed in request
There is a limit on number of CPUs in one request. This is set to 256.
Currently tool silently ignores request for count over 256. Give an
error message to indicate this.

Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
2023-08-08 15:16:40 -07:00
Frank Ramsay
06bbebdb6d tools/power/x86/intel-speed-select: Support more than 8 sockets.
MAX_PACKAGE_COUNT limits the intel-speed-select to systems with 8 sockets or fewer.
On a system with more than 8 sockets intel-speed-select silently ignores everything
beyond the 8th socket, rendering the tool useless for those systems.

Increase MAX_PACKAGE_COUNT to support systems with up to 32 sockets.

Signed-off-by: Frank Ramsay <frank.ramsay@hpe.com>
Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
2023-08-08 15:16:40 -07:00
Srinivas Pandruvada
7a4ab2f479 tools/power/x86/intel-speed-select: Fix CPU count display
Fix CPU count display for power domain != 0. In the function
punit_id is always 0, so it never incremented cpu count for power
domain id != 0.

Update punit_id after call to update_punit_cpu_info() to what is
actually received from the kernel.

Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
2023-08-08 15:16:40 -07:00
Srinivas Pandruvada
7244720ac1 tools/power/x86/intel-speed-select: v1.16 release
This version addresses issues with core power configuration for
non CPU dies. Also address issue with JSON formatting of output.

Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
2023-06-12 16:11:04 -07:00
Srinivas Pandruvada
fcf127839e tools/power/x86/intel-speed-select: Fix json formatting issue
Fix two issues related to JSON formatting:
1.
intel-speed-select -f json -o cp.out -c 1 core-power assoc -c 1
Intel(R) Speed Select Technology
Executing on CPU model:143[0x8f]
[root@spr-bkc bin]# cat cp.out | jq .
"package-0:die-0:cpu-1"

2.
intel-speed-select -f json -o tf.out turbo-freq enable -a
Intel(R) Speed Select Technology
Executing on CPU model:143[0x8f]
[root@spr-bkc bin]# cat tf.out | jq .
{
  "package-0:die-0:cpu-0": {
    "turbo-freq": {
      "enable": "success"
    }
  },
  "package-1:die-0:cpu-48": {
    "turbo-freq": {
      "enable": "success"
    }
  }
}
"turbo-freq --auto"
parse error: Expected string key before ':' at line 17, column 24

Both of these issues needed proper closing "}" for JSON.

Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
2023-06-12 16:04:02 -07:00
Srinivas Pandruvada
4ebde55b7d tools/power/x86/intel-speed-select: Adjust scope of core-power config
When core-power configuration or enabled is modified, this is only done
for compute dies. But the config must also be set to cores with no CPUs.
Without this the configuration is not affective.

On displaying config information, allow display for non compute dies
also.

Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
2023-06-12 16:03:25 -07:00