ondemand: add a check to avoid negative load calculation
PATCH 1/1 ondemand: add a check to avoid negative load calculation
Due to rounding and inexact jiffy accounting, idle_ticks can sometimes be higher than total_ticks. Make sure those cases are handled as zero load case.
Signed-off-by Venkatesh Pallipadi <[email protected]>
drivers/cpufreq/cpufreq_ondemand.c +3 -2
@@ -325,7 +325,7 @@ static struct attribute_group dbs_attr_gstatic void dbs_check_cpu (struct cpu_dbs_info_s *this_dbs_info) {unsigned int idle_ticks, total_ticks; -unsigned int load; +unsigned int load =0 ;cputime64_t cur_jiffies;struct cpufreq_policy *policy;
@@ -370,7 +370,8 @@ static void dbs_check_cpu(struct cpu_dbsif (tmp_idle_ticks < idle_ticks) idle_ticks = tmp_idle_ticks; } - load = (100 * (total_ticks - idle_ticks)) / total_ticks; +if (likely (total_ticks > idle_ticks)) + load = (100 * (total_ticks - idle_ticks)) / total_ticks;/* Check for frequency increase */ if (load > dbs_tuners_ins.up_threshold) {