summaryrefslogtreecommitdiff
path: root/tools/power/x86/intel-speed-select/isst-config.c
AgeCommit message (Collapse)Author
2022-09-15tools/power/x86/intel-speed-select: Remove unused struct clos_config fieldsZhang Rui
pkg_id/die_id can be retrieved from struct isst_id, remove the redundant clos_config->pkg_id/die_id fields. Signed-off-by: Zhang Rui <rui.zhang@intel.com> Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
2022-09-15tools/power/x86/intel-speed-select: Enforce isst_id valueZhang Rui
Enforce the pkg/die value in struct isst_id are either -1 or a valid value. This helps avoid inconsistent or redundant checks. Signed-off-by: Zhang Rui <rui.zhang@intel.com> Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
2022-09-15tools/power/x86/intel-speed-select: Do not export get_physical_idZhang Rui
Now, all the get_physical_pkg/die/core_id() users are inside isst-config.c, so no need to export these APIs. Signed-off-by: Zhang Rui <rui.zhang@intel.com> Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
2022-09-15tools/power/x86/intel-speed-select: Introduce is_cpu_in_power_domain helperZhang Rui
struct isst_id contains cpu, package and die info, and it can represent a specific SST power domain. Introduce is_cpu_in_power_domain() helper to identify if a cpu is in a specified power_domain. And cleanup the code to use the new helper. Signed-off-by: Zhang Rui <rui.zhang@intel.com> Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
2022-09-15tools/power/x86/intel-speed-select: Cleanup get_physical_id usageZhang Rui
struct isst_id already contains package and die id information, thus there is no need to get the package and die id information, when struct isst_id is already available. Remove unneeded get_physical_package_id/get_physical_die_id usage. Signed-off-by: Zhang Rui <rui.zhang@intel.com> Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
2022-09-15tools/power/x86/intel-speed-select: Convert more function to use isst_idZhang Rui
With pkg and die info added into struct isst_id, more functions can be converted to use struct isst_id as parameter. Signed-off-by: Zhang Rui <rui.zhang@intel.com> Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
2022-09-15tools/power/x86/intel-speed-select: Add pkg and die in isst_idZhang Rui
Code uses pkg_id and die_id to refer to a specific power domain. The pkg/die information is already settled at start time. Adding package id and die id information into struct isst_id so that code does not need to retrieve them at runtime. More code cleanups can be done with the package/die info available. Signed-off-by: Zhang Rui <rui.zhang@intel.com> Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
2022-09-15tools/power/x86/intel-speed-select: Introduce struct isst_idZhang Rui
SST control is power-domain based rather than cpu based, on all the systems including Sapphire Rapids and ealier. SST core APIs uses cpu id as parameter, and use the underlying pkg_id and die_id information to find a power domain, this is not straight forward and introduces obscure logics in the code. Introduce struct isst_id to represent a SST Power Domain. All core APIs are converted to use struct isst_id as parameter instead of using cpu id. Signed-off-by: Zhang Rui <rui.zhang@intel.com> Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
2022-09-15tools/power/x86/intel-speed-select: Remove unused core_mask arrayZhang Rui
Remove unused core_mask array. Reviewed-by: Ira Weiny <ira.weiny@intel.com> Signed-off-by: Zhang Rui <rui.zhang@intel.com> Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
2022-09-15tools/power/x86/intel-speed-select: Remove dead codeZhang Rui
Remove dead code. Not functional change in this patch Signed-off-by: Zhang Rui <rui.zhang@intel.com> Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
2022-05-12tools/power/x86/intel-speed-select: Display error on turbo mode disabledSrinivas Pandruvada
For Intel SST turbo-freq feature to be enabled, the turbo mode on the platform must be enabled also. If turbo mode is disabled, display error while enabling turbo-freq feature. Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> Link: https://lore.kernel.org/r/20220510023421.3930540-1-srinivas.pandruvada@linux.intel.com Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2022-02-17tools/power/x86/intel-speed-select: v1.12 releaseSrinivas Pandruvada
This version allows out of band SST support, where some remote agent changes SST profiles via some Board Management Controller. Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
2022-02-17tools/power/x86/intel-speed-select: OOB daemon modeSrinivas Pandruvada
It is possible that some out of band agent changed config level. In this case CPUs need to be online/offline to support this config change. Add a command line option --oob, so that this tool can run as daemon and poll for config level change and take action. The poll interval is configurable in seconds using config option --poll-interval. Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
2021-12-24tools/power/x86/intel-speed-select: v1.11 releaseSrinivas Pandruvada
This release adds following change: - Update max performance when BIOS disabled turbo Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> Reviewed-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2021-12-24tools/power/x86/intel-speed-select: Update max frequencySrinivas Pandruvada
When BIOS disables turbo, the cpuinfo_max_freq will also be same as the power up base frequency. When SST-PP causes increase in base frequency the performance will be still limited to the old base frequency as the cpuinfo_max_freq will not be updated. In this case we need to update scaling_max frequency to the new base_frequency. This will result in setting updated max performance limit in the Pstate driver. So performance will not be limited to the old base frequency. Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> Reviewed-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2021-06-18tools/power/x86/intel-speed-select: v1.10 releaseSrinivas Pandruvada
This release adds following change: - Fix reporting of memory frequency Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2021-06-18tools/power/x86/intel-speed-select: Fix uncore memory frequency displaySrinivas Pandruvada
The uncore memory frequency value from the mailbox command CONFIG_TDP_GET_MEM_FREQ needs to be scaled based on the platform for display. There is no single constant multiplier. This change introduces CPU model specific memory frequency multiplier. Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2021-04-07tools/power/x86/intel-speed-select: v1.9 releaseSrinivas Pandruvada
This release adds following changes: - Support increased number of CPUs - Return error when mailbox commmand fails to enable core-power - Option to online all CPUs - Removes build date and time print Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2021-04-07tools/power/x86/intel-speed-select: Drop __DATE__ and __TIME__ macrosAntonio Terceiro
These macros introduce nondeterminism in builds, and break reproducible builds. Signed-off-by: Antonio Terceiro <antonio.terceiro@linaro.org> Cc: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2021-04-07tools/power/x86/intel-speed-select: Add options to force onlineSrinivas Pandruvada
It is possible that users manually offlined CPUs via sysfs interface and then started this utility. In this case we will not be able to get package and die id of the those CPUs. So add an option to force online if required for some commands. Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2021-04-07tools/power/x86/intel-speed-select: Process mailbox read error for core-powerSrinivas Pandruvada
Some older kernels don't support reading core-power status. In that case mailbox command fails. So, display core-power status as "unknown" instead of supported. Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2021-02-08tools/power/x86/intel-speed-select: Update version to 1.8Srinivas Pandruvada
Update version for changes released with v5.12 kernel release. Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
2021-02-08tools/power/x86/intel-speed-select: Add new command to get/set TRLSrinivas Pandruvada
Add a new command to get and set TRL (Turbo Ratio Limits). This will help users to get/set TRL, when the direct MSR access is removed. Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
2021-02-08tools/power/x86/intel-speed-select: Add new command turbo-modeSrinivas Pandruvada
Add a new command "turbo-mode", which allows to enable/disable turbo mode globally. This uses base-frequency as the max frequency when turbo-mode is disabled. This allows soft disable turbo mode without depending on kernel or BIOS. Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
2021-01-04tools/power/x86/intel-speed-select: Set higher of cpuinfo_max_freq or ↵Srinivas Pandruvada
base_frequency In some case when BIOS disabled turbo, cpufreq cpuinfo_max_freq can be lower than base_frequency at higher config level. So, in that case set scaling_min_freq to base_frequency. Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> Link: https://lore.kernel.org/r/20201221071859.2783957-3-srinivas.pandruvada@linux.intel.com Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2021-01-04tools/power/x86/intel-speed-select: Set scaling_max_freq to base_frequencySrinivas Pandruvada
When BIOS disables turbo, The scaling_max_freq in cpufreq sysfs will be limited to config level 0 base frequency. But when user selects a higher config levels, this will result in higher base frequency. But since scaling_max_freq is still old base frequency, the performance will still be limited. So when the turbo is disabled and cpufreq base_frequency is higher than scaling_max_freq, update the scaling_max_freq to the base_frequency. Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> Link: https://lore.kernel.org/r/20201221071859.2783957-2-srinivas.pandruvada@linux.intel.com Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2020-12-08tools/power/x86/intel-speed-select: Update version for v5.11Srinivas Pandruvada
Update version for changes released with v5.11 kernel release. Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> Link: https://lore.kernel.org/platform-driver-x86/57d6648282491906e0e1f70fe3b9a44f72cec90d.camel@intel.com/ Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2020-12-08tools/power/x86/intel-speed-select: Account for missing sysfs for die_idSrinivas Pandruvada
Some older kernels will not have support to get CPU die_id from the sysfs. This requires several back ports. But the tool depends on getting die_id to match to correct CPU. Relax this restriction and use die_id as 0 when die_id is missing. This is not a problem as we don't have any multi-die processors with Intel SST support. This helps in running this tool on older kernels with just Intel SST drivers back ported. Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> Link: https://lore.kernel.org/platform-driver-x86/57d6648282491906e0e1f70fe3b9a44f72cec90d.camel@intel.com/ Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2020-10-07tools/power/x86/intel-speed-select: Update version for v5.10Srinivas Pandruvada
Update version for changes released with v5.10 kernel release. Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2020-10-07tools/power/x86/intel-speed-select: Fix missing base-freq core IDsJonathan Doman
The reported base-freq high-priority-cpu-list was potentially omitting some cpus, due to incorrectly using a logical core count to constrain the size of a physical punit core ID mask. We may need to read both high and low PBF CORE_MASK values regardless of the logical core count. Signed-off-by: Jonathan Doman <jonathan.doman@intel.com> Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2020-07-16tools/power/x86/intel-speed-select: Update version for v5.9Srinivas Pandruvada
Update version for changes released with v5.9 kernel release. Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
2020-07-16tools/power/x86/intel-speed-select: Add retries for mail box commandsSrinivas Pandruvada
Retry mail box command on failure. The default retry count is 3. This can be changed by "-r|--retry" options. This helps during early bring up of platforms. Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
2020-07-16tools/power/x86/intel-speed-select: Add option to delay mbox commandsSrinivas Pandruvada
Add option "p|--pause" to introduce delay between two mail box commands for test purpose. This delay can be specified in milliseconds. By default there is no delay between two mailbox commands. Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
2020-07-16tools/power/x86/intel-speed-select: Ignore -o option processing on errorSrinivas Pandruvada
When for some reason, CONFIG_TDP_GET_CORE_MASK mailbox command fails, then don't continue online/offline operation for perf-profile set-config-level with "-o" option. Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
2020-07-16tools/power/x86/intel-speed-select: Change path for caching topology infoSrinivas Pandruvada
We want to cache the topology info to a file, which is not preserved across boot cycle. The current storage in /tmp is getting preserved. So change the path from /tmp/isst_cpu_topology.dat to /var/run/isst_cpu_topology.dat. Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
2020-05-22tools/power/x86/intel-speed-select: Fix invalid core maskSrinivas Pandruvada
The core mask display is wrong in some cases. This is showing more cpus than the mask has. This is because mask is 64 bit but it used with BIT() macro to get the presence of CPU which doesn't support unsigned long long. Added a new macro for BIT_ULL and use that to get the presence of a CPU. Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
2020-05-22tools/power/x86/intel-speed-select: Increase CPU countSrinivas Pandruvada
Increase CPU count so that more than 64 is supported in one request. For example: sudo ./intel-speed-select -d --cpu 0-66 core-power assoc -clos 0 The above command stops at 63. With this change, it can support more CPU numbers from 0-255. Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
2020-05-11tools/power/x86/intel-speed-select: Update versionSrinivas Pandruvada
Update version to include 5.8 series enhancements. Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
2020-05-11tools/power/x86/intel-speed-select: Enable clos for turbo-freq enableSrinivas Pandruvada
turbo-freq enable, requires clos enable. So this is a two step process, when "-a" option is used. This is causing confusion to users. So enable clos by default for turbo-freq enable. Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
2020-05-11tools/power/x86/intel-speed-select: Fix CLX-N package information outputPrarit Bhargava
On CLX-N the perf-profile output is missing the package, die, and cpu output. On CLX-N the pkg_dev struct will never be evaluated by the core code so pkg_dev.processed is always 0 and the package, die, and cpu information is never output. Set the pkg_dev.processed flag to 1 for CLX-N processors. Signed-off-by: Prarit Bhargava <prarit@redhat.com> Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> Cc: andriy.shevchenko@linux.intel.com Cc: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> Cc: platform-driver-x86@vger.kernel.org
2020-05-11tools/power/x86/intel-speed-select: Check support status before enableSrinivas Pandruvada
When turbo-freq or base-freq feature is not supported, the enable will fail. So first check support status and print error. Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
2020-03-20tools/power/x86/intel-speed-select: Fix a typo in error messageMasanari Iida
This patch fix a spelling typo in error message. Signed-off-by: Masanari Iida <standby24x7@gmail.com> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
2020-03-20tools/power/x86/intel-speed-select: Update versionSrinivas Pandruvada
Fair number of changes including bug fixes done to change version. Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
2020-03-20tools/power/x86/intel-speed-select: Print friendly warning for bad command lineSrinivas Pandruvada
When user specifies invalid option, display "Unknown Option: ignore", instead of "no match". Also display error for garbage on the command line. Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
2020-03-20tools/power/x86/intel-speed-select: Fix avx options for turbo-freq featureSrinivas Pandruvada
Specifying "avx2" and "avx512" option for display filter doesn't work with short option "-r", only works with --try-type. Also compare full 6 characters for "avx512" string. Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
2020-03-20tools/power/x86/intel-speed-select: Improve CLX commandsSrinivas Pandruvada
CLX doesn't have capability to change the feature in the hardware, but this acts as "--auto | -a" option. So even if user didn't specify the option, use this as --auto | -a to set cpufreq scaling frequency limits. Also remove perror with debug_printf as they don't bring any value. Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
2020-03-20tools/power/x86/intel-speed-select: Show error for invalid CPUs in the optionsSrinivas Pandruvada
When --cpu or -c is used to specify target CPUs and non of them are valid, display error. Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
2020-03-20tools/power/x86/intel-speed-select: Improve core-power result and error displaySrinivas Pandruvada
This change adds improved error display and handling for commands related to core-power feature. The changes include: - Replace perror with helpful error message - Use ordered priority for SKX based platform by default as the proportional priority is not supported - Don't show weight and epp in help and also give error when user tries to set them in SKX based platforms - Range check for epp and weights and display error Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
2020-03-20tools/power/x86/intel-speed-select: Kernel interface error handlingSrinivas Pandruvada
Treat a case when mailbox/mmio command can't be handled by the kernel drivers when the module is removed or send a command which no driver can handle. In this case ENOTTY result is returned, so print error. Also when the isst_if_mmio module is removed, we can't send CLOS message messages via Mailbox on non SKX based platforms. When this module is removed, isst_platform_info.mmio_supported is set to 0. So it can't be used as a condition to send via mailbox. Here replace check for Skylake based platform to send via mailbox, other platforms can't use mailbox in lieu of MMIO. Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
2020-03-20tools/power/x86/intel-speed-select: Improve error display for turbo-freq featureSrinivas Pandruvada
This change adds improved error display and handling for commands related to turbo-freq feature. The changes include: - Replace perror/fprintf with helpful error message - Error for not specifying TDP level when required - Show error for invalid bucket number - Show message to enable core-power before enabling turbo-freq feature Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>