cpufreq: interactive: trace actual speed in target speed decisions

Tracing adds actual speed since this is expected to be key to the
choice of target speed.

Change-Id: Iec936102d0010c4e9dfa143c38a9fd0d551189c3
Signed-off-by: Todd Poynor <toddpoynor@google.com>
This commit is contained in:
Todd Poynor 2012-11-28 17:56:09 -08:00 committed by John Stultz
parent 2aadfa7584
commit dc202c38d3
2 changed files with 31 additions and 23 deletions

View file

@ -186,9 +186,9 @@ static void cpufreq_interactive_timer(unsigned long data)
new_freq > hispeed_freq &&
now - pcpu->hispeed_validate_time
< above_hispeed_delay_val) {
trace_cpufreq_interactive_notyet(data, cpu_load,
pcpu->target_freq,
new_freq);
trace_cpufreq_interactive_notyet(
data, cpu_load, pcpu->target_freq,
pcpu->policy->cur, new_freq);
goto rearm;
}
}
@ -215,8 +215,9 @@ static void cpufreq_interactive_timer(unsigned long data)
*/
if (new_freq < pcpu->floor_freq) {
if (now - pcpu->floor_validate_time < min_sample_time) {
trace_cpufreq_interactive_notyet(data, cpu_load,
pcpu->target_freq, new_freq);
trace_cpufreq_interactive_notyet(
data, cpu_load, pcpu->target_freq,
pcpu->policy->cur, new_freq);
goto rearm;
}
}
@ -225,13 +226,14 @@ static void cpufreq_interactive_timer(unsigned long data)
pcpu->floor_validate_time = now;
if (pcpu->target_freq == new_freq) {
trace_cpufreq_interactive_already(data, cpu_load,
pcpu->target_freq, new_freq);
trace_cpufreq_interactive_already(
data, cpu_load, pcpu->target_freq,
pcpu->policy->cur, new_freq);
goto rearm_if_notmax;
}
trace_cpufreq_interactive_target(data, cpu_load, pcpu->target_freq,
new_freq);
pcpu->policy->cur, new_freq);
pcpu->target_set_time_in_idle = now_idle;
pcpu->target_set_time = now;

View file

@ -36,44 +36,50 @@ DEFINE_EVENT(set, cpufreq_interactive_setspeed,
DECLARE_EVENT_CLASS(loadeval,
TP_PROTO(unsigned long cpu_id, unsigned long load,
unsigned long curfreq, unsigned long targfreq),
TP_ARGS(cpu_id, load, curfreq, targfreq),
unsigned long curtarg, unsigned long curactual,
unsigned long newtarg),
TP_ARGS(cpu_id, load, curtarg, curactual, newtarg),
TP_STRUCT__entry(
__field(unsigned long, cpu_id )
__field(unsigned long, load )
__field(unsigned long, curfreq )
__field(unsigned long, targfreq )
__field(unsigned long, curtarg )
__field(unsigned long, curactual )
__field(unsigned long, newtarg )
),
TP_fast_assign(
__entry->cpu_id = cpu_id;
__entry->load = load;
__entry->curfreq = curfreq;
__entry->targfreq = targfreq;
__entry->curtarg = curtarg;
__entry->curactual = curactual;
__entry->newtarg = newtarg;
),
TP_printk("cpu=%lu load=%lu cur=%lu targ=%lu",
__entry->cpu_id, __entry->load, __entry->curfreq,
__entry->targfreq)
TP_printk("cpu=%lu load=%lu cur=%lu actual=%lu targ=%lu",
__entry->cpu_id, __entry->load, __entry->curtarg,
__entry->curactual, __entry->newtarg)
);
DEFINE_EVENT(loadeval, cpufreq_interactive_target,
TP_PROTO(unsigned long cpu_id, unsigned long load,
unsigned long curfreq, unsigned long targfreq),
TP_ARGS(cpu_id, load, curfreq, targfreq)
unsigned long curtarg, unsigned long curactual,
unsigned long newtarg),
TP_ARGS(cpu_id, load, curtarg, curactual, newtarg)
);
DEFINE_EVENT(loadeval, cpufreq_interactive_already,
TP_PROTO(unsigned long cpu_id, unsigned long load,
unsigned long curfreq, unsigned long targfreq),
TP_ARGS(cpu_id, load, curfreq, targfreq)
unsigned long curtarg, unsigned long curactual,
unsigned long newtarg),
TP_ARGS(cpu_id, load, curtarg, curactual, newtarg)
);
DEFINE_EVENT(loadeval, cpufreq_interactive_notyet,
TP_PROTO(unsigned long cpu_id, unsigned long load,
unsigned long curfreq, unsigned long targfreq),
TP_ARGS(cpu_id, load, curfreq, targfreq)
unsigned long curtarg, unsigned long curactual,
unsigned long newtarg),
TP_ARGS(cpu_id, load, curtarg, curactual, newtarg)
);
TRACE_EVENT(cpufreq_interactive_boost,