Remove conversion of nice load to microseconds which caused addition of times measured in different units and thus unreasonable behaviour with both governors. Signed-off-by: Alexander Miller <Miller@xxxxxxxxxxxxxxxxxxxx> --- diff -uprN linux-2.6.git/drivers/cpufreq/cpufreq_conservative.c linux/drivers/cpufreq/cpufreq_conservative.c --- linux-2.6.git/drivers/cpufreq/cpufreq_conservative.c 2009-10-10 15:56:58.010595257 +0200 +++ linux/drivers/cpufreq/cpufreq_conservative.c 2009-10-10 20:56:52.194598889 +0200 @@ -400,20 +400,10 @@ static void dbs_check_cpu(struct cpu_dbs j_dbs_info->prev_cpu_idle = cur_idle_time; if (dbs_tuners_ins.ignore_nice) { - cputime64_t cur_nice; - unsigned long cur_nice_jiffies; - - cur_nice = cputime64_sub(kstat_cpu(j).cpustat.nice, + idle_time += (unsigned int) cputime64_sub( + kstat_cpu(j).cpustat.nice, j_dbs_info->prev_cpu_nice); - /* - * Assumption: nice time between sampling periods will - * be less than 2^32 jiffies for 32 bit sys - */ - cur_nice_jiffies = (unsigned long) - cputime64_to_jiffies64(cur_nice); - j_dbs_info->prev_cpu_nice = kstat_cpu(j).cpustat.nice; - idle_time += jiffies_to_usecs(cur_nice_jiffies); } if (unlikely(!wall_time || wall_time < idle_time)) diff -uprN linux-2.6.git/drivers/cpufreq/cpufreq_ondemand.c linux/drivers/cpufreq/cpufreq_ondemand.c --- linux-2.6.git/drivers/cpufreq/cpufreq_ondemand.c 2009-10-10 16:00:40.380595816 +0200 +++ linux/drivers/cpufreq/cpufreq_ondemand.c 2009-10-10 20:56:52.195596654 +0200 @@ -488,20 +488,10 @@ static void dbs_check_cpu(struct cpu_dbs j_dbs_info->prev_cpu_idle = cur_idle_time; if (dbs_tuners_ins.ignore_nice) { - cputime64_t cur_nice; - unsigned long cur_nice_jiffies; - - cur_nice = cputime64_sub(kstat_cpu(j).cpustat.nice, + idle_time += (unsigned int) cputime64_sub( + kstat_cpu(j).cpustat.nice, j_dbs_info->prev_cpu_nice); - /* - * Assumption: nice time between sampling periods will - * be less than 2^32 jiffies for 32 bit sys - */ - cur_nice_jiffies = (unsigned long) - cputime64_to_jiffies64(cur_nice); - j_dbs_info->prev_cpu_nice = kstat_cpu(j).cpustat.nice; - idle_time += jiffies_to_usecs(cur_nice_jiffies); } if (unlikely(!wall_time || wall_time < idle_time)) -- To unsubscribe from this list: send the line "unsubscribe cpufreq" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html