summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorRobin Randhawa <robin.randhawa@arm.com>2015-06-29 18:01:58 +0100
committerLeo Yan <leo.yan@linaro.org>2016-05-10 16:49:53 +0800
commitd2b3db032e34938c970b148e71cc401fc4c541e8 (patch)
tree7d70d7e04daff93f51767f7c7bce422796106a89 /include
parent1b35232614f555cbeed30a357ecf77a37632c347 (diff)
sched: Support for extracting EAS energy costs from DT
This patch implements support for extracting energy cost data from DT. The data should conform to the DT bindings for energy cost data needed by EAS (energy aware scheduling). Signed-off-by: Robin Randhawa <robin.randhawa@arm.com>
Diffstat (limited to 'include')
-rw-r--r--include/linux/sched_energy.h36
1 files changed, 36 insertions, 0 deletions
diff --git a/include/linux/sched_energy.h b/include/linux/sched_energy.h
new file mode 100644
index 000000000000..a3f1627ac609
--- /dev/null
+++ b/include/linux/sched_energy.h
@@ -0,0 +1,36 @@
+#ifndef _LINUX_SCHED_ENERGY_H
+#define _LINUX_SCHED_ENERGY_H
+
+#include <linux/sched.h>
+#include <linux/slab.h>
+
+/*
+ * There doesn't seem to be an NR_CPUS style max number of sched domain
+ * levels so here's an arbitrary constant one for the moment.
+ *
+ * The levels alluded to here correspond to entries in struct
+ * sched_domain_topology_level that are meant to be populated by arch
+ * specific code (topology.c).
+ */
+#define NR_SD_LEVELS 8
+
+#define SD_LEVEL0 0
+#define SD_LEVEL1 1
+#define SD_LEVEL2 2
+#define SD_LEVEL3 3
+#define SD_LEVEL4 4
+#define SD_LEVEL5 5
+#define SD_LEVEL6 6
+#define SD_LEVEL7 7
+
+/*
+ * Convenience macro for iterating through said sd levels.
+ */
+#define for_each_possible_sd_level(level) \
+ for (level = 0; level < NR_SD_LEVELS; level++)
+
+extern struct sched_group_energy *sge_array[NR_CPUS][NR_SD_LEVELS];
+
+void init_sched_energy_costs(void);
+
+#endif