On 14/7/2021 9:44 AM, Richael Zhuang wrote:
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. So here checking cpuinfo_cur_freq before scaling_cur_freq to make sure it works for all cpufreq drivers. Fixes: ff6dfb8e492f ("test/power: fix CPU frequency check") Cc: [email protected] Cc: [email protected] Signed-off-by: Richael Zhuang <[email protected]> --- app/test/test_power_cpufreq.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/test/test_power_cpufreq.c b/app/test/test_power_cpufreq.c index b8fc53925c..f56abb6f86 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");
Hi Richael, I don't think this patch fixes anything. If the scaling file is not available, it will then attempt to open the cpuinfo file. Changing the order does not address the underlying issue.
It looks like the test is failing in check_cur_req, which is only rounding for cppc driver. I think it also needs to round for the other drivers. I've just checked intel_pstate driver now, and it needs the rounding. I would think that acpi driver also needs it. I'll do a bit more investigation and see if I canĀ change to acpi and attempt to confirm that all drivers need the rounding.
Rgds, Dave.

