Messages in this thread | | | Date | Fri, 2 Jul 2021 14:00:29 +0200 | From | Peter Zijlstra <> | Subject | Re: [PATCH v2] sched/uclamp: Avoid getting unreasonable ucalmp value when rq is idle |
| |
On Fri, Jul 02, 2021 at 12:54:21PM +0100, Qais Yousef wrote: > Yep. How about the below? > > --->8--- > > sched/uclamp: Ignore max aggregation if rq is idle > > When a task wakes up on an idle rq, uclamp_rq_util_with() would max > aggregate with rq value. But since there is no task enqueued yet, the > values are stale based on the last task that was running. When the new > task actually wakes up and enqueued, then the rq uclamp values should > reflect that of the newly woken up task effective uclamp values. > > This is a problem particularly for uclamp_max because it default to > 1024. If a task p with uclamp_max = 512 wakes up, then max aggregation > would ignore the capping that should apply when this task is enqueued, > which is wrong. > > Fix that by ignoring max aggregation if the rq is idle since in that > case the effective uclamp value of the rq will be the ones of the task > that will wake up. > > --->8---
Much better, I've updated it. Thanks!
| |