Skip to content

Commit

Permalink
test/power: fix CPU frequency check for intel_pstate
Browse files Browse the repository at this point in the history
[ upstream commit cf1e803 ]

For acpi_cpufreq and cppc_cpufreq, both cpuinfo_cur_freq and
scaling_cur_freq exist. For pstate, only scaling_cur_freq exists.
And value in scaling_cur_freq and cpuinfo_cur_freq may not be the
same. For acpi_cpufreq and cppc_cpufreq, we should check
cpuinfo_cur_freq but not scaling_cur_freq. So here change the
check sequence to make sure it works for all cpufreq drivers.
Besides, add rounding for pstate driver.

Fixes: ff6dfb8 ("test/power: fix CPU frequency check")

Signed-off-by: Richael Zhuang <richael.zhuang@arm.com>
Acked-by: David Hunt <david.hunt@intel.com>
  • Loading branch information
richael02 authored and cpaelzer committed Aug 10, 2021
1 parent 4e4f0af commit ed9be54
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions app/test/test_power_cpufreq.c
Expand Up @@ -62,13 +62,13 @@ check_cur_freq(unsigned int lcore_id, uint32_t idx, bool turbo)
int i;

if (snprintf(fullpath, sizeof(fullpath),
TEST_POWER_SYSFILE_SCALING_FREQ, lcore_id) < 0) {
TEST_POWER_SYSFILE_CPUINFO_FREQ, lcore_id) < 0) {
return 0;
}
f = fopen(fullpath, "r");
if (f == NULL) {
if (snprintf(fullpath, sizeof(fullpath),
TEST_POWER_SYSFILE_CPUINFO_FREQ, lcore_id) < 0) {
TEST_POWER_SYSFILE_SCALING_FREQ, lcore_id) < 0) {
return 0;
}
f = fopen(fullpath, "r");
Expand All @@ -85,7 +85,7 @@ check_cur_freq(unsigned int lcore_id, uint32_t idx, bool turbo)
freq_conv = cur_freq;

env = rte_power_get_env();
if (env == PM_ENV_CPPC_CPUFREQ) {
if (env == PM_ENV_CPPC_CPUFREQ || env == PM_ENV_PSTATE_CPUFREQ) {
/* convert the frequency to nearest 100000 value
* Ex: if cur_freq=1396789 then freq_conv=1400000
* Ex: if cur_freq=800030 then freq_conv=800000
Expand Down

0 comments on commit ed9be54

Please sign in to comment.