mbox series

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

Message ID cover.1607400596.git.viresh.kumar@linaro.org
Headers show
Series cpufreq_cooling: Get effective CPU utilization from scheduler | expand

Message

Viresh Kumar Dec. 8, 2020, 4:16 a.m. UTC
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

Comments

Peter Zijlstra Dec. 8, 2020, 2:50 p.m. UTC | #1
On Tue, Dec 08, 2020 at 09:46:54AM +0530, Viresh Kumar wrote:
> 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


How should we go about merging this? Do I take the lot, or do we go muck
about with topic branches?
Viresh Kumar Dec. 8, 2020, 3:06 p.m. UTC | #2
On 08-12-20, 15:50, Peter Zijlstra wrote:
> On Tue, Dec 08, 2020 at 09:46:54AM +0530, Viresh Kumar wrote:

> > 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

> 

> How should we go about merging this? Do I take the lot, or do we go muck

> about with topic branches?


Please take all of these through your tree. Thanks.

-- 
viresh