Qais Yousef 244226035a 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
2022-10-27 11:01:18 +02:00
..
2022-10-17 18:52:43 -07:00
2022-10-17 18:52:43 -07:00
2022-09-28 09:02:20 +02:00
2022-09-26 19:46:18 -07:00
2022-10-17 16:32:05 +02:00
2022-10-10 11:36:19 -07:00
2022-10-10 09:10:28 -07:00
2022-08-29 19:47:03 -04:00
2022-10-04 11:05:43 -07:00
2022-09-26 10:13:13 -07:00
2022-05-23 17:51:12 -07:00
2022-03-15 10:32:44 +01:00
2022-10-03 17:11:07 -07:00
2022-09-01 16:55:35 +02:00
2022-06-29 13:07:16 +02:00
2022-10-10 09:10:28 -07:00
2022-10-10 12:49:34 -07:00
2022-02-25 09:36:06 +01:00
2022-08-06 16:38:17 -07:00
2022-10-03 17:11:07 -07:00