sched: window-stats: adjust RQ curr, prev sums on task migration

Adjust cpu's busy time in its recent and previous window upon task
migration. This would enable scheduler to provide better inputs to
cpufreq governor on a cpu's busy time in a given window.

Change-Id: Idec2ca459382e9f46d882da3af53148412d631c6
Signed-off-by: Steve Muckle <smuckle@codeaurora.org>
Signed-off-by: Srivatsa Vaddagiri <vatsa@codeaurora.org>
This commit is contained in:
Steve Muckle 2014-04-29 14:16:47 -07:00 committed by David Keitel
parent bb0b8e9859
commit cebda4b7a3

View file

@ -1623,8 +1623,24 @@ void set_task_cpu(struct task_struct *p, unsigned int new_cpu)
p->se.nr_migrations++;
perf_event_task_migrate(p);
if (p->state == TASK_RUNNING)
#if defined(CONFIG_SCHED_FREQ_INPUT) || defined(CONFIG_SCHED_HMP)
if (p->on_rq) {
struct rq *src_rq = task_rq(p);
struct rq *dest_rq = cpu_rq(new_cpu);
p->on_rq = 0; /* Fixme */
update_task_ravg(p, task_rq(p), 0);
p->on_rq = 1; /* Fixme */
update_task_ravg(dest_rq->curr, dest_rq, 1);
src_rq->curr_runnable_sum -= p->ravg.sum;
src_rq->prev_runnable_sum -= p->ravg.prev_window;
dest_rq->curr_runnable_sum += p->ravg.sum;
dest_rq->prev_runnable_sum += p->ravg.prev_window;
}
#endif
}
__set_task_cpu(p, new_cpu);