Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 56459312 authored by Todd Poynor's avatar Todd Poynor Committed by Amit Pundir
Browse files

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: default avatarTodd Poynor <toddpoynor@google.com>
parent 8a2739e1
Loading
Loading
Loading
Loading
+10 −8
Original line number Diff line number Diff line
@@ -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;

+21 −15
Original line number Diff line number Diff line
@@ -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,