summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--kernel/sched.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/kernel/sched.c b/kernel/sched.c
index b9208a0e33a0..673b588b713b 100644
--- a/kernel/sched.c
+++ b/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))