diff options
author | Joel Fernandes <joelaf@google.com> | 2017-09-11 17:10:37 -0700 |
---|---|---|
committer | Amit Pundir <amit.pundir@linaro.org> | 2018-03-05 21:52:26 +0530 |
commit | 6c4800286316f128b63b83c7b3c1bcb4cfc7db71 (patch) | |
tree | a9a124b3b07f396d10dcfc2efd4330895c4a0a2f /include | |
parent | 272395d80b39916bf736d6fba61c6f423d865285 (diff) |
ANDROID: sched/rt: schedtune: Add boost retention to RT
Boosted RT tasks can be deboosted quickly, this makes boost usless
for RT tasks and causes lots of glitching. Use timers to prevent
de-boost too soon and wait for long enough such that next enqueue
happens after a threshold.
While this can be solved in the governor, there are following
advantages:
- The approach used is governor-independent
- Reduces boost group lock contention for frequently sleepers/wakers
Note:
Fixed build breakage due to schedfreq dependency which isn't used
for RT anymore.
Bug: 30210506
Change-Id: I428a2695cac06cc3458cdde0dea72315e4e66c00
Signed-off-by: Joel Fernandes <joelaf@google.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/sched.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/include/linux/sched.h b/include/linux/sched.h index 4645017c6a24..d3dd0d516957 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -1434,6 +1434,10 @@ struct sched_rt_entity { unsigned long watchdog_stamp; unsigned int time_slice; + /* Accesses for these must be guarded by rq->lock of the task's rq */ + bool schedtune_enqueued; + struct hrtimer schedtune_timer; + struct sched_rt_entity *back; #ifdef CONFIG_RT_GROUP_SCHED struct sched_rt_entity *parent; |