[PATCH 1/2] cpufreq: fix the CPUFreqCPUsSetToSW_ANY failed LP#1076694
Colin Ian King
colin.king at canonical.com
Tue Nov 20 10:34:09 UTC 2012
On 20/11/12 10:10, Ivan Hu wrote:
> The bug LP#1076694 first failed "CPUFreqCPUsSetToSW_ANY: Test 1, Processors
> are set to SW_ANY." This is due to when doing check_sw_any fuction,
> we assume that high_perf > newhigh_perf, but if the newhigh_perf > high_perf
> will accidentally make "high_perf - newhigh_perf > (high_perf - low_perf)/4"
> to be true. So add high_perf > newhig_perf to avoid it.
>
> Signed-off-by: Ivan Hu <ivan.hu at canonical.com>
> ---
> src/cpu/cpufreq/cpufreq.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/src/cpu/cpufreq/cpufreq.c b/src/cpu/cpufreq/cpufreq.c
> index 9efe4f0..98a5a9a 100644
> --- a/src/cpu/cpufreq/cpufreq.c
> +++ b/src/cpu/cpufreq/cpufreq.c
> @@ -589,7 +589,8 @@ static void check_sw_any(fwts_framework *fw)
> if (i != j)
> lowest_speed(fw, j);
> newhigh_perf = get_performance(i);
> - if (high_perf - newhigh_perf > (high_perf - low_perf)/4 &&
> + if ((high_perf > newhigh_perf) &&
> + (high_perf - newhigh_perf > (high_perf - low_perf)/4) &&
> (once == 0) && (high_perf - low_perf > 20)) {
> fwts_failed(fw, LOG_LEVEL_MEDIUM,
> "CPUFreqCPUsSetToSW_ANY",
>
Well spotted.
Acked-by: Colin Ian King <colin.king at canonical.com>
More information about the fwts-devel
mailing list