[PATCH v3 0/5] sched/fair: Task placement biasing using uclamp

From: Valentin Schneider
Date: Wed Dec 11 2019 - 06:39:18 EST


While uclamp restrictions currently only impact schedutil's frequency
selection, it would make sense to also let them impact CPU selection in
asymmetric topologies. This would let us steer specific tasks towards
certain CPU capacities regardless of their actual utilization - I give a
few examples in patch 4.

The first three patches are mainly cleanups, the meat of the thing is
in patches 4 and 5.

Note that this is in the same spirit as what Patrick had proposed for EAS
on Android [1]

[1]: https://android.googlesource.com/kernel/common/+/b61876ed122f816660fe49e0de1b7ee4891deaa2%5E%21


Changed in v3:

- Collect Reviewed-by
- (new patch) Remove uclamp_util() (Dietmar)
- Make uclamp_eff_value()'s return type unsigned long (Vincent)
- Reword find_energy_efficient_cpu() tweak changelog (Dietmar)

Changed in v2:

- Collect Reviewed-by

- Make uclamp_task_util() unconditionally use util_est (Quentin)
- Because of the above, move uclamp_task_util() to fair.c

- Split v1's 3/3 into
- task_fits_capacity() tweak (v2's 3/4)
- find_energy_efficient_cpu() tweak (v2's 4/4).


Valentin Schneider (5):
sched/uclamp: Remove uclamp_util()
sched/uclamp: Make uclamp util helpers use and return UL values
sched/uclamp: Rename uclamp_util_with() into uclamp_rq_util_with()
sched/fair: Make task_fits_capacity() consider uclamp restrictions
sched/fair: Make EAS wakeup placement consider uclamp restrictions

kernel/sched/core.c | 6 +++---
kernel/sched/cpufreq_schedutil.c | 2 +-
kernel/sched/fair.c | 28 +++++++++++++++++++++++++---
kernel/sched/sched.h | 24 ++++++++----------------
4 files changed, 37 insertions(+), 23 deletions(-)