mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-10 21:07:02 +09:00
sched: WALT: fix broken cumulative runnable average accounting
When running tasks's ravg.demand is changed update_history() adjusts rq->cumulative_runnable_avg to reflect change of CPU load. Currently this fixup is broken by accumulating task's new demand without subtracting the task's old demand. Fix the fixup logic to subtract the task's old demand. Change-Id: I61beb32a4850879ccb39b733f5564251e465bfeb Signed-off-by: Joonwoo Park <joonwoop@codeaurora.org>
This commit is contained in:
committed by
Amit Pundir
parent
4771c96d16
commit
1eca70e4c4
@@ -111,8 +111,10 @@ walt_dec_cumulative_runnable_avg(struct rq *rq,
|
||||
|
||||
static void
|
||||
fixup_cumulative_runnable_avg(struct rq *rq,
|
||||
struct task_struct *p, s64 task_load_delta)
|
||||
struct task_struct *p, u64 new_task_load)
|
||||
{
|
||||
s64 task_load_delta = (s64)new_task_load - task_load(p);
|
||||
|
||||
rq->cumulative_runnable_avg += task_load_delta;
|
||||
if ((s64)rq->cumulative_runnable_avg < 0)
|
||||
panic("cra less than zero: tld: %lld, task_load(p) = %u\n",
|
||||
|
||||
Reference in New Issue
Block a user