aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/cpufreq
diff options
context:
space:
mode:
authorTodd Poynor <toddpoynor@google.com>2012-02-16 16:27:59 -0800
committerTodd Poynor <toddpoynor@google.com>2012-02-17 14:37:00 -0800
commit4d6f3d7209ffa828fad5d5495c1eb8c571d308ad (patch)
tree464660fcadeaa554740316cdb6f3d40717f0322e /drivers/cpufreq
parent1f8c5cecfe44994cd617ba2803f41fb56d53e91c (diff)
downloadkernel_samsung_tuna-4d6f3d7209ffa828fad5d5495c1eb8c571d308ad.zip
kernel_samsung_tuna-4d6f3d7209ffa828fad5d5495c1eb8c571d308ad.tar.gz
kernel_samsung_tuna-4d6f3d7209ffa828fad5d5495c1eb8c571d308ad.tar.bz2
cpufreq interactive governor: event tracing
Change-Id: Ic13614a3da2faa2d4bd215ca3eb7191614f0cf66 Signed-off-by: Todd Poynor <toddpoynor@google.com>
Diffstat (limited to 'drivers/cpufreq')
-rw-r--r--drivers/cpufreq/cpufreq_interactive.c19
1 files changed, 18 insertions, 1 deletions
diff --git a/drivers/cpufreq/cpufreq_interactive.c b/drivers/cpufreq/cpufreq_interactive.c
index 45266d5..7b4efd5 100644
--- a/drivers/cpufreq/cpufreq_interactive.c
+++ b/drivers/cpufreq/cpufreq_interactive.c
@@ -28,6 +28,9 @@
#include <linux/kthread.h>
#include <linux/mutex.h>
+#define CREATE_TRACE_POINTS
+#include <trace/events/cpufreq_interactive.h>
+
#include <asm/cputime.h>
static atomic_t active_count = ATOMIC_INIT(0);
@@ -183,7 +186,11 @@ static void cpufreq_interactive_timer(unsigned long data)
new_freq = pcpu->freq_table[index].frequency;
if (pcpu->target_freq == new_freq)
+ {
+ trace_cpufreq_interactive_already(data, cpu_load,
+ pcpu->target_freq, new_freq);
goto rearm_if_notmax;
+ }
/*
* Do not scale down unless we have been at this frequency for the
@@ -191,10 +198,16 @@ static void cpufreq_interactive_timer(unsigned long data)
*/
if (new_freq < pcpu->target_freq) {
if (cputime64_sub(pcpu->timer_run_time, pcpu->freq_change_time)
- < min_sample_time)
+ < min_sample_time) {
+ trace_cpufreq_interactive_notyet(data, cpu_load,
+ pcpu->target_freq, new_freq);
goto rearm;
+ }
}
+ trace_cpufreq_interactive_target(data, cpu_load, pcpu->target_freq,
+ new_freq);
+
if (new_freq < pcpu->target_freq) {
pcpu->target_freq = new_freq;
spin_lock_irqsave(&down_cpumask_lock, flags);
@@ -382,6 +395,8 @@ static int cpufreq_interactive_up_task(void *data)
pcpu->freq_change_time_in_idle =
get_cpu_idle_time_us(cpu,
&pcpu->freq_change_time);
+ trace_cpufreq_interactive_up(cpu, pcpu->target_freq,
+ pcpu->policy->cur);
}
}
@@ -428,6 +443,8 @@ static void cpufreq_interactive_freq_down(struct work_struct *work)
pcpu->freq_change_time_in_idle =
get_cpu_idle_time_us(cpu,
&pcpu->freq_change_time);
+ trace_cpufreq_interactive_down(cpu, pcpu->target_freq,
+ pcpu->policy->cur);
}
}