summaryrefslogtreecommitdiff
path: root/virt
diff options
context:
space:
mode:
authorXuewen Yan <xuewen.yan@unisoc.com>2021-06-30 22:12:04 +0800
committerPeter Zijlstra <peterz@infradead.org>2021-07-02 15:58:24 +0200
commit3e1493f46390618ea78607cb30c58fc19e2a5035 (patch)
tree655f36eda115a83aad7e93cce6f71869b2a32d9a /virt
parent72d0ad7cb5bad265adb2014dbe46c4ccb11afaba (diff)
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. Fixes: 9d20ad7dfc9a ("sched/uclamp: Add uclamp_util_with()") Signed-off-by: Xuewen Yan <xuewen.yan@unisoc.com> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Reviewed-by: Valentin Schneider <valentin.schneider@arm.com> [qias: Changelog] Reviewed-by: Qais Yousef <qais.yousef@arm.com> Link: https://lore.kernel.org/r/20210630141204.8197-1-xuewen.yan94@gmail.com
Diffstat (limited to 'virt')
0 files changed, 0 insertions, 0 deletions