diff options
| author | Joonwoo Park <joonwoop@codeaurora.org> | 2016-02-03 14:52:23 -0800 |
|---|---|---|
| committer | David Keitel <dkeitel@codeaurora.org> | 2016-03-23 21:25:22 -0700 |
| commit | 616e04a51cf13b46cbe635a1d74996b596ccb736 (patch) | |
| tree | 761d16dbae445cd7a7c0e2d9947d577ad9c628f0 /kernel/sysctl.c | |
| parent | b29f9a7a8403e7245ed9f939da67caa3fae7dce9 (diff) | |
sched: add preference for waker cluster CPU in wakee task placement
If sync wakee task's demand is small it's worth to place the wakee task
on waker's cluster for better performance in the sense that waker and
wakee are corelated so the wakee should take advantage of waker cluster's
frequency which is voted by the waker along with cache locality benefit.
While biasing towards the waker's cluster we want to avoid the waker CPU
as much as possible as placing the wakee on the waker's CPU can make the
waker got preempted and migrated by load balancer.
Introduce a new tunable 'sched_small_wakee_task_load' that differentiates
eligible small wakee task and place the small wakee tasks on the waker's
cluster.
CRs-fixed: 971295
Change-Id: I96897d9a72a6f63dca4986d9219c2058cd5a7916
Signed-off-by: Joonwoo Park <joonwoop@codeaurora.org>
[joonwoop@codeaurora.org: fixed a minor conflict in
include/linux/sched/sysctl.h.]
Diffstat (limited to 'kernel/sysctl.c')
| -rw-r--r-- | kernel/sysctl.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/kernel/sysctl.c b/kernel/sysctl.c index 5b2e77d8fff4..09d6882acb86 100644 --- a/kernel/sysctl.c +++ b/kernel/sysctl.c @@ -442,6 +442,13 @@ static struct ctl_table kern_table[] = { .extra1 = &zero, .extra2 = &one, }, + { + .procname = "sched_small_wakee_task_load", + .data = &sysctl_sched_small_wakee_task_load_pct, + .maxlen = sizeof(unsigned int), + .mode = 0644, + .proc_handler = sched_hmp_proc_update_handler, + }, #ifdef CONFIG_SCHED_FREQ_INPUT { .procname = "sched_new_task_windows", |
