summaryrefslogtreecommitdiff
path: root/kernel/sysctl.c
diff options
context:
space:
mode:
authorSyed Rameez Mustafa <rameezmustafa@codeaurora.org>2014-06-12 10:47:12 -0700
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-23 19:59:32 -0700
commita536cf8ac858ac8388272d98f9baf8e7ba25b646 (patch)
tree3d9e3a8e85c50d225d8f75a6237d40710b018b21 /kernel/sysctl.c
parent8e7389b5c2130b62ceafb7cc9d6a2ae00bfbcf5a (diff)
sched: Introduce spill threshold tunables to manage overcommitment
When the number of tasks intended for a cluster exceed the number of mostly idle CPUs in that cluster, the scheduler currently freely uses CPUs in other clusters if possible. While this is optimal for performance the power trade off can be quite significant. Introduce spill threshold tunables that govern the extent to which the scheduler should attempt to contain tasks within a cluster. Change-Id: I797e6c6b2aa0c3a376dad93758abe1d587663624 Signed-off-by: Syed Rameez Mustafa <rameezmustafa@codeaurora.org> [rameezmustafa@codeaurora.org]: Port to msm-3.18] Signed-off-by: Syed Rameez Mustafa <rameezmustafa@codeaurora.org [joonwoop@codeaurora.org: fixed conflict in nohz_kick_needed()] Signed-off-by: Joonwoo Park <joonwoop@codeaurora.org>
Diffstat (limited to 'kernel/sysctl.c')
-rw-r--r--kernel/sysctl.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/kernel/sysctl.c b/kernel/sysctl.c
index 4560a50a4558..66fc408900c2 100644
--- a/kernel/sysctl.c
+++ b/kernel/sysctl.c
@@ -347,6 +347,20 @@ static struct ctl_table kern_table[] = {
.proc_handler = proc_dointvec,
},
{
+ .procname = "sched_spill_load",
+ .data = &sysctl_sched_spill_load_pct,
+ .maxlen = sizeof(unsigned int),
+ .mode = 0644,
+ .proc_handler = sched_hmp_proc_update_handler,
+ },
+ {
+ .procname = "sched_spill_nr_run",
+ .data = &sysctl_sched_spill_nr_run,
+ .maxlen = sizeof(unsigned int),
+ .mode = 0644,
+ .proc_handler = proc_dointvec,
+ },
+ {
.procname = "sched_upmigrate",
.data = &sysctl_sched_upmigrate_pct,
.maxlen = sizeof(unsigned int),
@@ -381,6 +395,13 @@ static struct ctl_table kern_table[] = {
.mode = 0644,
.proc_handler = proc_dointvec,
},
+ {
+ .procname = "sched_power_band_limit",
+ .data = &sysctl_sched_powerband_limit_pct,
+ .maxlen = sizeof(unsigned int),
+ .mode = 0644,
+ .proc_handler = sched_hmp_proc_update_handler,
+ },
#endif /* CONFIG_SCHED_HMP */
#ifdef CONFIG_SCHED_DEBUG
{