summaryrefslogtreecommitdiff
path: root/kernel/sched/sched.h
diff options
context:
space:
mode:
authorSrivatsa Vaddagiri <vatsa@codeaurora.org>2014-04-02 19:18:38 -0700
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-23 19:59:11 -0700
commitfb9ab2a720a549c8cdcc7956c3fceaf5199503a2 (patch)
treeff397f045bca22bc67fa9ca4f48b497c8be6b029 /kernel/sched/sched.h
parentbf863e333ff3704543c1300f837058b33c7bcb46 (diff)
sched: Provide tunable to switch between PELT and window-based stats
Provide a runtime tunable to switch between using PELT-based load stats and window-based load stats. This will be needed for runtime analysis of the two load tracking schemes. Change-Id: I018f6a90b49844bf2c4e5666912621d87acc7217 Signed-off-by: Srivatsa Vaddagiri <vatsa@codeaurora.org>
Diffstat (limited to 'kernel/sched/sched.h')
-rw-r--r--kernel/sched/sched.h13
1 files changed, 11 insertions, 2 deletions
diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h
index 01aa57b070f1..5808369fdce3 100644
--- a/kernel/sched/sched.h
+++ b/kernel/sched/sched.h
@@ -930,6 +930,7 @@ extern void init_new_task_load(struct task_struct *p);
#if defined(CONFIG_SCHED_FREQ_INPUT) || defined(CONFIG_SCHED_HMP)
extern unsigned int sched_ravg_window;
+extern unsigned int sched_use_pelt;
extern unsigned int max_possible_freq;
extern unsigned int min_max_freq;
extern unsigned int pct_task_load(struct task_struct *p);
@@ -949,13 +950,21 @@ extern unsigned int sched_init_task_load_windows;
static inline void
inc_cumulative_runnable_avg(struct rq *rq, struct task_struct *p)
{
- rq->cumulative_runnable_avg += p->ravg.demand;
+ if (sched_use_pelt)
+ rq->cumulative_runnable_avg +=
+ p->se.avg.runnable_avg_sum_scaled;
+ else
+ rq->cumulative_runnable_avg += p->ravg.demand;
}
static inline void
dec_cumulative_runnable_avg(struct rq *rq, struct task_struct *p)
{
- rq->cumulative_runnable_avg -= p->ravg.demand;
+ if (sched_use_pelt)
+ rq->cumulative_runnable_avg -=
+ p->se.avg.runnable_avg_sum_scaled;
+ else
+ rq->cumulative_runnable_avg -= p->ravg.demand;
BUG_ON((s64)rq->cumulative_runnable_avg < 0);
}