sched/walt: walt hooks skipped during rt throttling

Currently, walt maintains cra and adds demand when enqueue
task happens and subtracts from it when dequeue happens.
However, when an rt task is throttled, walt is not informed
of the dequeue. This leads to a residual demand when the
idle task switches in post throttling leading to
walt accounting error.

Remove that specific accounting check since it is hard to
inform WALT of the throttle dequeue and unthrottle enqueue,
until rt can be fixed to support walt accounting in the
throttling case.

Change-Id: If1416a61fbe3979253a42cb82990b7b13ad2c4eb
Signed-off-by: Stephen Dickey <quic_dickey@quicinc.com>
This commit is contained in:
Stephen Dickey 2022-03-09 15:36:49 -08:00 committed by Rishabh Bhatnagar
parent 05cfb9a3e5
commit 6acd93ad48

View File

@ -4152,7 +4152,6 @@ static void android_rvh_schedule(void *unused, struct task_struct *prev,
{
u64 wallclock;
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;
@ -4164,9 +4163,6 @@ 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) && wrq->walt_stats.cumulative_runnable_avg_scaled != 0)
WALT_BUG(WALT_BUG_WALT, next, "next=idle cra non zero=%d\n",
wrq->walt_stats.cumulative_runnable_avg_scaled);
} else {
walt_update_task_ravg(prev, rq, TASK_UPDATE, wallclock, 0);
}