mirror of https://gitee.com/openkylin/linux.git
ftrace: sched tree fix
Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
This commit is contained in:
parent
f29c73fe34
commit
36fc25a9f4
|
@ -2414,6 +2414,23 @@ static int sched_balance_self(int cpu, int flag)
|
|||
|
||||
#ifdef CONFIG_CONTEXT_SWITCH_TRACER
|
||||
|
||||
void ftrace_task(struct task_struct *p, void *__tr, void *__data)
|
||||
{
|
||||
#if 0
|
||||
/*
|
||||
* trace timeline tree
|
||||
*/
|
||||
__trace_special(__tr, __data,
|
||||
p->pid, p->se.vruntime, p->se.sum_exec_runtime);
|
||||
#else
|
||||
/*
|
||||
* trace balance metrics
|
||||
*/
|
||||
__trace_special(__tr, __data,
|
||||
p->pid, p->se.avg_overlap, 0);
|
||||
#endif
|
||||
}
|
||||
|
||||
void ftrace_all_fair_tasks(void *__rq, void *__tr, void *__data)
|
||||
{
|
||||
struct task_struct *p;
|
||||
|
@ -2421,32 +2438,22 @@ void ftrace_all_fair_tasks(void *__rq, void *__tr, void *__data)
|
|||
struct rb_node *curr;
|
||||
struct rq *rq = __rq;
|
||||
|
||||
curr = first_fair(&rq->cfs);
|
||||
if (!curr)
|
||||
return;
|
||||
|
||||
if (rq->cfs.curr) {
|
||||
p = task_of(rq->cfs.curr);
|
||||
__trace_special(__tr, __data,
|
||||
p->pid, p->se.vruntime, p->se.sum_exec_runtime);
|
||||
ftrace_task(p, __tr, __data);
|
||||
}
|
||||
if (rq->cfs.next) {
|
||||
p = task_of(rq->cfs.next);
|
||||
__trace_special(__tr, __data,
|
||||
p->pid, p->se.vruntime, p->se.sum_exec_runtime);
|
||||
ftrace_task(p, __tr, __data);
|
||||
}
|
||||
|
||||
while (curr) {
|
||||
for (curr = first_fair(&rq->cfs); curr; curr = rb_next(curr)) {
|
||||
se = rb_entry(curr, struct sched_entity, run_node);
|
||||
if (!entity_is_task(se))
|
||||
continue;
|
||||
|
||||
p = task_of(se);
|
||||
|
||||
__trace_special(__tr, __data,
|
||||
p->pid, p->se.vruntime, p->se.sum_exec_runtime);
|
||||
|
||||
curr = rb_next(curr);
|
||||
ftrace_task(p, __tr, __data);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue