提交 36fc25a9 编写于 作者: I Ingo Molnar 提交者: Thomas Gleixner

ftrace: sched tree fix

Signed-off-by: NIngo Molnar <mingo@elte.hu>
Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
上级 f29c73fe
......@@ -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);
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册