test/power: fix CPU frequency check for intel_pstate
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: ff6dfb8e492f ("test/power: fix CPU frequency check") Cc: stable@dpdk.org Signed-off-by: Richael Zhuang <richael.zhuang@arm.com> Acked-by: David Hunt <david.hunt@intel.com>
This commit is contained in:
parent
87fb608356
commit
cf1e803508
@ -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");
|
||||
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user