From: Chris Redpath Date: Fri, 24 Mar 2017 18:56:16 +0000 (+0000) Subject: sched/tune: fix sched_energy_diff tracepoint X-Git-Tag: release-20171130_firefly~4^2~100^2~24 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=87a8942e2261de92a4341cfb2c2fa229971a8f00;p=firefly-linux-kernel-4.4.55.git sched/tune: fix sched_energy_diff tracepoint sched_energy_diff tracepoint is in a place where it can never trace payoff or nrg.delta. If CONFIG_SCHED_TUNE is enabled, put it in a place where those values exist. If it is not enabled, trace from the current location Change-Id: Id5442f2b34ec76625491d27c0f4285433ca12699 Reported-by: Valentin Schneider Signed-off-by: Chris Redpath --- diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index cbd6d12e91fe..752d7ddd0f3a 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -5574,13 +5574,13 @@ static inline int __energy_diff(struct energy_env *eenv) eenv->nrg.after = energy_after; eenv->nrg.diff = eenv->nrg.after - eenv->nrg.before; eenv->payoff = 0; - +#ifndef CONFIG_SCHED_TUNE 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); - +#endif /* * Dead-zone margin preventing too many migrations. */ @@ -5651,6 +5651,12 @@ energy_diff(struct energy_env *eenv) eenv->cap.delta, eenv->task); + 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); + /* * When SchedTune is enabled, the energy_diff() function will return * the computed energy payoff value. Since the energy_diff() return