[CPUFREQ] ondemand,conservative governor store the idle ticks for all cpus
Dave Jones [Wed, 1 Jun 2005 02:03:49 +0000 (19:03 -0700)]
[PATCH] [2/5] ondemand,conservative governor store the idle ticks for all cpus

Ondemand, conservative governor did not store prev_cpu_idle_up into
prev_cpu_idle_down for other CPUs than the current CPU.

Signed-off-by: Eric Piel <eric.piel@tremplin-utc.net>
Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Signed-off-by: Dave Jones <davej@redhat.com>

drivers/cpufreq/cpufreq_conservative.c
drivers/cpufreq/cpufreq_ondemand.c

index 3082a3f..c503ec1 100644 (file)
@@ -369,7 +369,13 @@ static void dbs_check_cpu(int cpu)
 
        if (idle_ticks < up_idle_ticks) {
                down_skip[cpu] = 0;
-               this_dbs_info->prev_cpu_idle_down = total_idle_ticks;
+               for_each_cpu_mask(j, policy->cpus) {
+                       struct cpu_dbs_info_s *j_dbs_info;
+
+                       j_dbs_info = &per_cpu(cpu_dbs_info, j);
+                       j_dbs_info->prev_cpu_idle_down = 
+                                       j_dbs_info->prev_cpu_idle_up;
+               }
                /* if we are already at full speed then break out early */
                if (requested_freq[cpu] == policy->max)
                        return;
index 26cf54b..f239545 100644 (file)
@@ -355,7 +355,13 @@ static void dbs_check_cpu(int cpu)
 
        if (idle_ticks < up_idle_ticks) {
                down_skip[cpu] = 0;
-               this_dbs_info->prev_cpu_idle_down = total_idle_ticks;
+               for_each_cpu_mask(j, policy->cpus) {
+                       struct cpu_dbs_info_s *j_dbs_info;
+
+                       j_dbs_info = &per_cpu(cpu_dbs_info, j);
+                       j_dbs_info->prev_cpu_idle_down = 
+                                       j_dbs_info->prev_cpu_idle_up;
+               }
                /* if we are already at full speed then break out early */
                if (policy->cur == policy->max)
                        return;