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

Commit 4525aa34 authored by Patrick Bellasi's avatar Patrick Bellasi Committed by John Stultz
Browse files

DEBUG: sched/tune: add tracepoint for energy_diff() values



Change-Id: Id8fafbd85f6d81248f322e073ee790a7ceec0bf7
Signed-off-by: default avatarPatrick Bellasi <patrick.bellasi@arm.com>
parent 962b7c10
Loading
Loading
Loading
Loading
+57 −0
Original line number Diff line number Diff line
@@ -794,6 +794,63 @@ TRACE_EVENT(sched_boost_task,
		  __entry->margin)
);

/*
 * Tracepoint for accounting sched group energy
 */
TRACE_EVENT(sched_energy_diff,

	TP_PROTO(struct task_struct *tsk, int scpu, int dcpu, int udelta,
		int nrgb, int nrga, int nrgd, int capb, int capa, int capd,
		int nrgn, int nrgp),

	TP_ARGS(tsk, scpu, dcpu, udelta,
		nrgb, nrga, nrgd, capb, capa, capd,
		nrgn, nrgp),

	TP_STRUCT__entry(
		__array( char,	comm,	TASK_COMM_LEN	)
		__field( pid_t,	pid	)
		__field( int,	scpu	)
		__field( int,	dcpu	)
		__field( int,	udelta	)
		__field( int,	nrgb	)
		__field( int,	nrga	)
		__field( int,	nrgd	)
		__field( int,	capb	)
		__field( int,	capa	)
		__field( int,	capd	)
		__field( int,	nrgn	)
		__field( int,	nrgp	)
	),

	TP_fast_assign(
		memcpy(__entry->comm, tsk->comm, TASK_COMM_LEN);
		__entry->pid		= tsk->pid;
		__entry->scpu 		= scpu;
		__entry->dcpu 		= dcpu;
		__entry->udelta 	= udelta;
		__entry->nrgb 		= nrgb;
		__entry->nrga 		= nrga;
		__entry->nrgd 		= nrgd;
		__entry->capb 		= capb;
		__entry->capa 		= capa;
		__entry->capd 		= capd;
		__entry->nrgn 		= nrgn;
		__entry->nrgp 		= nrgp;
	),

	TP_printk("pid=%d comm=%s "
			"src_cpu=%d dst_cpu=%d usage_delta=%d "
			"nrg_before=%d nrg_after=%d nrg_diff=%d "
			"cap_before=%d cap_after=%d cap_delta=%d "
			"nrg_delta=%d nrg_payoff=%d",
		__entry->pid, __entry->comm,
		__entry->scpu, __entry->dcpu, __entry->udelta,
		__entry->nrgb, __entry->nrga, __entry->nrgd,
		__entry->capb, __entry->capa, __entry->capd,
		__entry->nrgn, __entry->nrgp)
);

#endif /* _TRACE_SCHED_H */

/* This part must be outside protection */
+10 −1
Original line number Diff line number Diff line
@@ -4998,6 +4998,7 @@ static int energy_diff(struct energy_env *eenv)
	struct sched_domain *sd;
	struct sched_group *sg;
	int sd_cpu = -1, energy_before = 0, energy_after = 0;
	int result;

	struct energy_env eenv_before = {
		.util_delta	= 0,
@@ -5041,7 +5042,15 @@ static int energy_diff(struct energy_env *eenv)
	eenv->nrg.diff = eenv->nrg.after - eenv->nrg.before;
	eenv->payoff = 0;

	return energy_diff_evaluate(eenv);
	result = energy_diff_evaluate(eenv);

	trace_sched_energy_diff(eenv->task,
			eenv->src_cpu, eenv->dst_cpu, eenv->util_delta,
			eenv->nrg.before, eenv->nrg.after, eenv->nrg.diff,
			eenv->cap.before, eenv->cap.after, eenv->cap.delta,
			eenv->nrg.delta, eenv->payoff);

	return result;
}

/*