summaryrefslogtreecommitdiff
path: root/Documentation/scheduler/sched-hmp.txt
diff options
context:
space:
mode:
authorPavankumar Kondeti <pkondeti@codeaurora.org>2015-04-10 15:10:56 +0530
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-23 20:01:59 -0700
commitc17d7d3c4033e4ccb1022930d88e655230dbc79b (patch)
treed73f1e13fd89be32c1ef67e186e2e3c2c9312efa /Documentation/scheduler/sched-hmp.txt
parent37921ca6be838402cbd6cb408a7a3f7aa5cea6f7 (diff)
sched: auto adjust the upmigrate and downmigrate thresholds
The load scale factor of a CPU gets boosted when its max freq is restricted. A task load at the same frequency is scaled higher than normal under this scenario. This results in tasks migrating early to the better capacity CPUs and their residency over there also gets increased as their inflated load would be relatively higher than than the downmigrate threshold. Auto adjust the upmigrate and downmigrate thresholds by a factor equal to rq->max_possible_freq/rq->max_freq of a lower capacity CPU. If the adjusted upmigrate threshold exceeds the window size, it is clipped to the window size. If the adjusted downmigrate threshold decreases the difference between the upmigrate and downmigrate, it is clipped to a value such that the difference between the modified and the original thresholds is same. Change-Id: Ifa70ee5d4ca5fe02789093c7f070c77629907f04 Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>
Diffstat (limited to 'Documentation/scheduler/sched-hmp.txt')
-rw-r--r--Documentation/scheduler/sched-hmp.txt18
1 files changed, 18 insertions, 0 deletions
diff --git a/Documentation/scheduler/sched-hmp.txt b/Documentation/scheduler/sched-hmp.txt
index 97072a8bee02..5af8b6df1cb4 100644
--- a/Documentation/scheduler/sched-hmp.txt
+++ b/Documentation/scheduler/sched-hmp.txt
@@ -565,6 +565,24 @@ both tasks and CPUs to aid in the placement of tasks.
whose upmigrate_discourage flag is set) will never be classified as big tasks
despite their high demand.
+ As the load scale factor is calculated against current fmax, it gets boosted
+ when a lower capacity CPU is restricted to run at lower fmax. The task
+ demand is inflated in this scenario and the task upmigrates early to the
+ maximum capacity CPU. Hence this threshold is auto-adjusted by a factor
+ equal to max_possible_frequency/current_frequency of a lower capacity CPU.
+ This adjustment happens only when the lower capacity CPU frequency is
+ restricted. The same adjustment is applied to the downmigrate threshold
+ as well.
+
+ When the frequency restriction is relaxed, the previous values are restored.
+ sched_up_down_migrate_auto_update macro defined in kernel/sched/core.c
+ controls this auto-adjustment behavior and it is enabled by default.
+
+ If the adjusted upmigrate threshold exceeds the window size, it is clipped to
+ the window size. If the adjusted downmigrate threshold decreases the difference
+ between the upmigrate and downmigrate, it is clipped to a value such that the
+ difference between the modified and the original thresholds is same.
+
- mostly_idle
The "mostly_idle" classification applies to CPUs. This