summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMorten Rasmussen <morten.rasmussen@arm.com>2014-10-21 23:07:25 -0700
committerMichael Turquette <mturquette@deferred.io>2014-11-19 00:27:43 -0800
commit5986fc8957ea0f3ba5ba53a9fe95d2105d5a3c9e (patch)
tree3ccdb42e7266a1bb71d3cbc80eb42072e3dddf77
parente0496ee20818a396db34d96668025e87fec596fd (diff)
sched: Make energy awareness a sched feature
This patch introduces the ENERGY_AWARE sched feature, which is implemented using jump labels when SCHED_DEBUG is defined. It is statically set false when SCHED_DEBUG is not defined. Hence this doesn't allow energy awareness to be enabled without SCHED_DEBUG. This sched_feature knob will be replaced later with a more appropriate control knob when things have matured a bit. Signed-off-by: Morten Rasmussen <morten.rasmussen@arm.com> Signed-off-by: Mike Turquette <mturquette@linaro.org> [mturquette@linaro.org: moved energy_aware above enqueue_task_fair]
-rw-r--r--kernel/sched/fair.c5
-rw-r--r--kernel/sched/features.h6
2 files changed, 11 insertions, 0 deletions
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index 81d1d038c9a0..8a2e363a8a0b 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -4186,6 +4186,11 @@ static inline void hrtick_update(struct rq *rq)
}
#endif
+static inline bool energy_aware(void)
+{
+ return sched_feat(ENERGY_AWARE);
+}
+
/*
* The enqueue_task method is called before nr_running is
* increased. Here we update the fair scheduling stats and
diff --git a/kernel/sched/features.h b/kernel/sched/features.h
index 90284d117fe6..199ee3a62fbc 100644
--- a/kernel/sched/features.h
+++ b/kernel/sched/features.h
@@ -83,3 +83,9 @@ SCHED_FEAT(NUMA_FAVOUR_HIGHER, true)
*/
SCHED_FEAT(NUMA_RESIST_LOWER, false)
#endif
+
+/*
+ * Energy aware scheduling. Use platform energy model to guide scheduling
+ * decisions optimizing for energy efficiency.
+ */
+SCHED_FEAT(ENERGY_AWARE, false)