diff --git a/kernel/sched/walt/walt_cfs.c b/kernel/sched/walt/walt_cfs.c index a08414829041..9a463143cb73 100644 --- a/kernel/sched/walt/walt_cfs.c +++ b/kernel/sched/walt/walt_cfs.c @@ -1210,6 +1210,15 @@ static void walt_cfs_replace_next_task_fair(void *unused, struct rq *rq, struct if (unlikely(walt_disabled)) return; + if ((*p) && (*p) != prev && ((*p)->on_cpu == 1 || (*p)->on_rq == 0 || + (*p)->on_rq == TASK_ON_RQ_MIGRATING || + (*p)->cpu != cpu_of(rq))) { + printk_deferred("WALT-BUG picked %s(%d) on_cpu=%d on_rq=%d p->cpu=%d cpu_of(rq)=%d kthread=%d\n", + (*p)->comm, (*p)->pid, (*p)->on_cpu, + (*p)->on_rq, (*p)->cpu, cpu_of(rq), ((*p)->flags & PF_KTHREAD)); + SCHED_BUG_ON(1); + } + /* We don't have MVP tasks queued */ if (list_empty(&wrq->mvp_tasks)) return; @@ -1222,6 +1231,15 @@ static void walt_cfs_replace_next_task_fair(void *unused, struct rq *rq, struct *se = &mvp->se; *repick = true; + if ((*p) && (*p) != prev && ((*p)->on_cpu == 1 || (*p)->on_rq == 0 || + (*p)->on_rq == TASK_ON_RQ_MIGRATING || + (*p)->cpu != cpu_of(rq))) { + printk_deferred("WALT-BUG picked %s(%d) on_cpu=%d on_rq=%d p->cpu=%d cpu_of(rq)=%d kthread=%d\n", + (*p)->comm, (*p)->pid, (*p)->on_cpu, + (*p)->on_rq, (*p)->cpu, cpu_of(rq), ((*p)->flags & PF_KTHREAD)); + SCHED_BUG_ON(1); + } + trace_walt_cfs_mvp_pick_next(mvp, wts, walt_cfs_mvp_task_limit(mvp)); }