summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorSyed Rameez Mustafa <rameezmustafa@codeaurora.org>2014-05-28 13:30:26 -0700
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-23 19:59:45 -0700
commit754f66613135c2b554051544dd9148ac83bb725e (patch)
treed23bc7cc37f930f4a9e84f8bd19e94ef9de52c68 /include/linux
parent28d07e053974c173e3a62d38f54dabd21d111a41 (diff)
sched/fair: Introduce scheduler boost for low latency workloads
Certain low latency bursty workloads require immediate use of highest capacity CPUs in HMP systems. Existing load tracking mechanisms may be unable to respond to the sudden surge in the system load within the latency requirements. Introduce the scheduler boost feature for such workloads. While boost is in effect the scheduler bypasses regular load based task placement and prefers highest capacity CPUs in the system for all non-small fair sched class tasks. Provide both a kernel and userspace API for software that may have apriori knowledge about the system workload. Change-Id: I783f585d1f8c97219e629d9c54f712318821922f Signed-off-by: Syed Rameez Mustafa <rameezmustafa@codeaurora.org> [joonwoop@codeaurora.org: fixed minor conflict in include/linux/sched/sysctl.h.] Signed-off-by: Joonwoo Park <joonwoop@codeaurora.org>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/sched.h9
-rw-r--r--include/linux/sched/sysctl.h4
2 files changed, 13 insertions, 0 deletions
diff --git a/include/linux/sched.h b/include/linux/sched.h
index 1fa6ff26f5f7..d4ac19e3bd39 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -2300,6 +2300,15 @@ sched_set_cpu_cstate(int cpu, int cstate, int wakeup_energy, int wakeup_latency)
}
#endif
+#ifdef CONFIG_SCHED_HMP
+extern int sched_set_boost(int enable);
+#else
+static inline int sched_set_boost(int enable)
+{
+ return -EINVAL;
+}
+#endif
+
#ifdef CONFIG_NO_HZ_COMMON
void calc_load_enter_idle(void);
void calc_load_exit_idle(void);
diff --git a/include/linux/sched/sysctl.h b/include/linux/sched/sysctl.h
index eaf153b35cfa..fde724969cd8 100644
--- a/include/linux/sched/sysctl.h
+++ b/include/linux/sched/sysctl.h
@@ -64,6 +64,7 @@ extern unsigned int sysctl_sched_downmigrate_pct;
extern int sysctl_sched_upmigrate_min_nice;
extern unsigned int sysctl_sched_enable_power_aware;
extern unsigned int sysctl_sched_powerband_limit_pct;
+extern unsigned int sysctl_sched_boost;
#else /* CONFIG_SCHED_HMP */
@@ -101,6 +102,9 @@ extern int sched_migrate_notify_proc_handler(struct ctl_table *table,
extern int sched_hmp_proc_update_handler(struct ctl_table *table,
int write, void __user *buffer, size_t *lenp, loff_t *ppos);
+extern int sched_boost_handler(struct ctl_table *table, int write,
+ void __user *buffer, size_t *lenp, loff_t *ppos);
+
/*
* control realtime throttling:
*