From a7c3f86453945f747c7c32b933a86987cfeb631e Mon Sep 17 00:00:00 2001 From: Stephen Dickey Date: Wed, 4 Aug 2021 21:35:46 -0700 Subject: [PATCH] sched/walt: when idle task is scheduled cra must be zero Validate that cumulative_runnable_avg is zero when the next scheduled task is the idle task. Change-Id: Ia14f9c773c48bf44dfb71080b9360dd473b73923 Signed-off-by: Stephen Dickey --- kernel/sched/walt/walt.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/kernel/sched/walt/walt.c b/kernel/sched/walt/walt.c index aeb7e0736144..128636ceb12a 100644 --- a/kernel/sched/walt/walt.c +++ b/kernel/sched/walt/walt.c @@ -4031,6 +4031,7 @@ static void android_rvh_schedule(void *unused, struct task_struct *prev, { u64 wallclock = walt_ktime_get_ns(); struct walt_task_struct *wts = (struct walt_task_struct *) prev->android_vendor_data1; + struct walt_rq *wrq = (struct walt_rq *) rq->android_vendor_data1; if (unlikely(walt_disabled)) return; @@ -4039,6 +4040,11 @@ static void android_rvh_schedule(void *unused, struct task_struct *prev, wts->last_sleep_ts = wallclock; walt_update_task_ravg(prev, rq, PUT_PREV_TASK, wallclock, 0); walt_update_task_ravg(next, rq, PICK_NEXT_TASK, wallclock, 0); + if (is_idle_task(next)) + if (wrq->walt_stats.cumulative_runnable_avg_scaled != 0) { + printk_deferred("WALT-BUG next=idle cra!=0\n"); + SCHED_BUG_ON(1); + } } else { walt_update_task_ravg(prev, rq, TASK_UPDATE, wallclock, 0); }