summaryrefslogtreecommitdiff
path: root/include/linux/sched.h
diff options
context:
space:
mode:
authorJoel Fernandes <joelaf@google.com>2017-09-11 17:10:37 -0700
committerTodd Kjos <tkjos@google.com>2017-11-07 23:47:42 +0000
commitd194ba5d712f051ff6c025f3484bb72f219764e3 (patch)
tree39ac44cd00a5c8afc64aaa5ff58b3e926558b8e9 /include/linux/sched.h
parentcd04e987d1da0eadc25c2186bd6bd93f22c3e851 (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 - Works with schedfreq without any other schedfreq hacks. Bug: 30210506 Change-Id: I41788b235586988be446505deb7c0529758a9898 Signed-off-by: Joel Fernandes <joelaf@google.com>
Diffstat (limited to 'include/linux/sched.h')
-rw-r--r--include/linux/sched.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/include/linux/sched.h b/include/linux/sched.h
index 60af9d2fa922..6197d9c8e5a0 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -1433,6 +1433,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;