[PATCH V5 0/3] cpufreq_cooling: Get effective CPU utilization from scheduler

From: Viresh Kumar
Date: Mon Dec 07 2020 - 23:17:52 EST


Hi,

This patchset makes the cpufreq_cooling driver reuse the CPU utilization
metric provided by the scheduler instead of depending on idle and busy
times of a CPU, which aren't that accurate to measure the busyness of a
CPU for the next cycle. More details can be seen in the commit logs of
the patches.

V4->V5:
- Don't export enum cpu_util_type and don't pass it as argument to
sched_cpu_util().
- Fixed a build issue with !CONFIG_THERMAL_GOV_POWER_ALLOCATOR by moving
{allocate|free}_idle_time() out of CONFIG_THERMAL_GOV_POWER_ALLOCATOR
in patch 3/3.
- Applied Acks from Rafael.

V3->V4:
- Broke the first patch into two parts and used effective_cpu_util() in
schedutil (Rafael).

- Removed comment about idle-injection in last patch based on feedback
from Lukasz and added hi Reviewed-by tag.

V2->V3:
- Put the scheduler helpers within ifdef CONFIG_SMP.
- Keep both SMP and !SMP implementations in the cpufreq_cooling driver.
- Improved commit log with testing related information.

--
Viresh

Viresh Kumar (3):
sched/core: Move schedutil_cpu_util() to core.c
sched/core: Rename schedutil_cpu_util() and allow rest of the kernel
to use it
thermal: cpufreq_cooling: Reuse sched_cpu_util() for SMP platforms

drivers/thermal/cpufreq_cooling.c | 69 ++++++++++++++----
include/linux/sched.h | 5 ++
kernel/sched/core.c | 114 ++++++++++++++++++++++++++++++
kernel/sched/cpufreq_schedutil.c | 108 +---------------------------
kernel/sched/fair.c | 6 +-
kernel/sched/sched.h | 22 ++----
6 files changed, 184 insertions(+), 140 deletions(-)


base-commit: 3650b228f83adda7e5ee532e2b90429c03f7b9ec
--
2.25.0.rc1.19.g042ed3e048af