sched/tune: fix sched_energy_diff tracepoint
authorChris Redpath <chris.redpath@arm.com>
Fri, 24 Mar 2017 18:56:16 +0000 (18:56 +0000)
committerAmit Pundir <amit.pundir@linaro.org>
Wed, 21 Jun 2017 11:07:44 +0000 (16:37 +0530)
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 <valentin.schneider@arm.com>
Signed-off-by: Chris Redpath <chris.redpath@arm.com>
kernel/sched/fair.c

index cbd6d12e91fe4cb5155f87163340828b9c241fc5..752d7ddd0f3a4a675b5672fb0111cd9eb9572542 100644 (file)
@@ -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