summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorSteve Muckle <smuckle@codeaurora.org>2014-06-12 10:44:46 -0700
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-23 19:59:21 -0700
commitec7d8cc0766bb640f6bb12f7c7fc4f5b65d9a272 (patch)
treed75f70267a9644c56a7b5ea2877a1b01068e444c /kernel
parent6e8842f8be8606761162cd1cb5ab75c037d5f359 (diff)
sched: add power aware scheduling sysctl
The sched_enable_power_aware sysctl will control whether or not scheduling decisions are influenced by the power consumption of individual CPUs. Change-Id: I312f892cf76a3fccc4ecc8aa6703908b205267f0 Signed-off-by: Steve Muckle <smuckle@codeaurora.org> Signed-off-by: Srivatsa Vaddagiri <vatsa@codeaurora.org>
Diffstat (limited to 'kernel')
-rw-r--r--kernel/sched/fair.c8
-rw-r--r--kernel/sysctl.c7
2 files changed, 15 insertions, 0 deletions
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index fdf879b9e51c..28151d829d30 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -2575,6 +2575,12 @@ unsigned int __read_mostly sysctl_sched_enable_hmp_task_placement = 1;
unsigned int __read_mostly sysctl_sched_mostly_idle_nr_run = 3;
/*
+ * Control whether or not individual CPU power consumption is used to
+ * guide task placement.
+ */
+unsigned int __read_mostly sysctl_sched_enable_power_aware = 1;
+
+/*
* Conversion of *_pct to absolute form is based on max_task_load().
*
* For example:
@@ -2980,6 +2986,8 @@ static inline int nr_big_tasks(struct rq *rq)
#else /* CONFIG_SCHED_HMP */
+#define sysctl_sched_enable_power_aware 0
+
static inline int select_best_cpu(struct task_struct *p, int target)
{
return 0;
diff --git a/kernel/sysctl.c b/kernel/sysctl.c
index edf9fa68004b..06fe2f6591e7 100644
--- a/kernel/sysctl.c
+++ b/kernel/sysctl.c
@@ -365,6 +365,13 @@ static struct ctl_table kern_table[] = {
.mode = 0644,
.proc_handler = sched_hmp_proc_update_handler,
},
+ {
+ .procname = "sched_enable_power_aware",
+ .data = &sysctl_sched_enable_power_aware,
+ .maxlen = sizeof(unsigned int),
+ .mode = 0644,
+ .proc_handler = proc_dointvec,
+ },
#endif /* CONFIG_SCHED_HMP */
#ifdef CONFIG_SCHED_DEBUG
{