Bläddra i källkod

ftrace: trace curr/next tasks

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Ingo Molnar 17 år sedan
förälder
incheckning
24cd5d111e
1 ändrade filer med 12 tillägg och 1 borttagningar
  1. 12 1
      kernel/sched.c

+ 12 - 1
kernel/sched.c

@@ -2398,8 +2398,8 @@ static int sched_balance_self(int cpu, int flag)
 
 void ftrace_all_fair_tasks(void *__rq, void *__tr, void *__data)
 {
-	struct sched_entity *se;
 	struct task_struct *p;
+	struct sched_entity *se;
 	struct rb_node *curr;
 	struct rq *rq = __rq;
 
@@ -2407,6 +2407,17 @@ void ftrace_all_fair_tasks(void *__rq, void *__tr, void *__data)
 	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);
+	}
+	if (rq->cfs.next) {
+		p = task_of(rq->cfs.next);
+		__trace_special(__tr, __data,
+		      p->pid, p->se.vruntime, p->se.sum_exec_runtime);
+	}
+
 	while (curr) {
 		se = rb_entry(curr, struct sched_entity, run_node);
 		if (!entity_is_task(se))