From: Richael Zhuang Date: Wed, 14 Jul 2021 10:44:05 +0000 (+0800) Subject: test/power: fix CPU frequency check for intel_pstate X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=cf1e803508009917f41dd5bb347e4140043afe03;p=dpdk.git 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 Acked-by: David Hunt --- diff --git a/app/test/test_power_cpufreq.c b/app/test/test_power_cpufreq.c index b8fc53925c..1a9549527e 100644 --- a/app/test/test_power_cpufreq.c +++ b/app/test/test_power_cpufreq.c @@ -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