sched/walt: Fix misfit accounting issues

Currently we are using task_fits_capacity() for  misfit task
accounting. This does not consider boost scenarios. We also
end up accounting 100% tasks running on the highest capacity
CPU as misfit. A task on the highest capacity CPU should never
be treated as misfit.

rq->misfit_task_load should use task_util() not task_load(). The
later is task demand scaled to sched_ravg_window in nano seconds.

Change-Id: I1f923e33530d2d04d7bfca9dd42920f799794864
Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>
This commit is contained in:
Pavankumar Kondeti 2021-02-12 13:21:46 +05:30 committed by Rishabh Bhatnagar
parent 5b8490ab11
commit 6fff83754b

View File

@ -3800,10 +3800,10 @@ static void android_rvh_update_misfit_status(void *unused, struct task_struct *p
wts = (struct walt_task_struct *) p->android_vendor_data1;
old_misfit = wts->misfit;
if (task_fits_capacity(p, capacity_orig_of(cpu_of(rq)), rq->cpu))
if (task_fits_max(p, rq->cpu))
rq->misfit_task_load = 0;
else
rq->misfit_task_load = task_load(p);
rq->misfit_task_load = task_util(p);
misfit = rq->misfit_task_load;