[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20110302160033.GA27760@redhat.com>
Date: Wed, 2 Mar 2011 11:00:34 -0500
From: Dave Jones <davej@...hat.com>
To: Youquan Song <youquan.song@...ux.intel.com>
Cc: Andrew Morton <akpm@...ux-foundation.org>, arjan@...ux.intel.com,
venki@...gle.com, youquan.song@...el.com,
cpufreq-list@...r.kernel.org, linux-kernel@...r.kernel.org,
vincent.guittot@...aro.org
Subject: Re: [PATCH] cpufreq: Fix ondemand governor powersave_bias execution
time misuse
On Wed, Mar 02, 2011 at 01:58:02PM -0500, Youquan Song wrote:
>
> > Where are we with this patch? Still needed in curent mainline?
> Do need it by current mainline. Without the patch, the ondemand
> power_bias feature is broken and does not work at all.
> Please take it.
This patch from Vincent Guittot is also pending, which seems to achieve
the same thing ?
commit 1f5a2969af7e0d040876c7ff25308c840eef18d4
Author: Vincent Guittot <vincent.guittot@...aro.org>
Date: Mon Feb 7 17:14:25 2011 +0100
[CPUFREQ] calculate delay after dbs_check_cpu
calculate ondemand delay after dbs_check_cpu call because it can
modify rate_mult value
use freq_lo_jiffies value for the sub sample period of powersave_bias mode
Signed-off-by: Vincent Guittot <vincent.guittot@...aro.org>
Signed-off-by: Dave Jones <davej@...hat.com>
diff --git a/drivers/cpufreq/cpufreq_ondemand.c b/drivers/cpufreq/cpufreq_ondemand.c
index c631f27..b4e1f98 100644
--- a/drivers/cpufreq/cpufreq_ondemand.c
+++ b/drivers/cpufreq/cpufreq_ondemand.c
@@ -644,12 +644,7 @@ static void do_dbs_timer(struct work_struct *work)
unsigned int cpu = dbs_info->cpu;
int sample_type = dbs_info->sample_type;
- /* We want all CPUs to do sampling nearly on same jiffy */
- int delay = usecs_to_jiffies(dbs_tuners_ins.sampling_rate
- * dbs_info->rate_mult);
-
- if (num_online_cpus() > 1)
- delay -= jiffies % delay;
+ int delay;
mutex_lock(&dbs_info->timer_mutex);
@@ -662,10 +657,20 @@ static void do_dbs_timer(struct work_struct *work)
/* Setup timer for SUB_SAMPLE */
dbs_info->sample_type = DBS_SUB_SAMPLE;
delay = dbs_info->freq_hi_jiffies;
+ } else {
+ /* We want all CPUs to do sampling nearly on
+ * same jiffy
+ */
+ delay = usecs_to_jiffies(dbs_tuners_ins.sampling_rate
+ * dbs_info->rate_mult);
+
+ if (num_online_cpus() > 1)
+ delay -= jiffies % delay;
}
} else {
__cpufreq_driver_target(dbs_info->cur_policy,
dbs_info->freq_lo, CPUFREQ_RELATION_H);
+ delay = dbs_info->freq_lo_jiffies;
}
queue_delayed_work_on(cpu, kondemand_wq, &dbs_info->work, delay);
mutex_unlock(&dbs_info->timer_mutex);
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists