diff options
author | Qais Yousef <qais.yousef@arm.com> | 2022-08-04 15:36:03 +0100 |
---|---|---|
committer | Peter Zijlstra <peterz@infradead.org> | 2022-10-27 11:01:18 +0200 |
commit | 244226035a1f9b2b6c326e55ae5188fab4f428cb (patch) | |
tree | 54019e47494836ed44cee16a4b8bd86dc41a6379 /drivers/ssb | |
parent | b48e16a69792b5dc4a09d6807369d11b2970cc36 (diff) | |
download | lwn-244226035a1f9b2b6c326e55ae5188fab4f428cb.tar.gz lwn-244226035a1f9b2b6c326e55ae5188fab4f428cb.zip |
sched/uclamp: Fix fits_capacity() check in feec()
As reported by Yun Hsiang [1], if a task has its uclamp_min >= 0.8 * 1024,
it'll always pick the previous CPU because fits_capacity() will always
return false in this case.
The new util_fits_cpu() logic should handle this correctly for us beside
more corner cases where similar failures could occur, like when using
UCLAMP_MAX.
We open code uclamp_rq_util_with() except for the clamp() part,
util_fits_cpu() needs the 'raw' values to be passed to it.
Also introduce uclamp_rq_{set, get}() shorthand accessors to get uclamp
value for the rq. Makes the code more readable and ensures the right
rules (use READ_ONCE/WRITE_ONCE) are respected transparently.
[1] https://lists.linaro.org/pipermail/eas-dev/2020-July/001488.html
Fixes: 1d42509e475c ("sched/fair: Make EAS wakeup placement consider uclamp restrictions")
Reported-by: Yun Hsiang <hsiang023167@gmail.com>
Signed-off-by: Qais Yousef <qais.yousef@arm.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://lore.kernel.org/r/20220804143609.515789-4-qais.yousef@arm.com
Diffstat (limited to 'drivers/ssb')
0 files changed, 0 insertions, 0 deletions