[PATCH 0/8] schedutil enhancements

From: Michael Turquette
Date: Mon Mar 14 2016 - 01:26:18 EST

I'm happy that scheduler-driven cpu frequency selection is getting some
attention. Rafael's recent schedutil governor is a step in the right direction.
This series builds on top of Rafael's schedutil governor, bringing it to parity
with some of the features in the schedfreq series posted by Steve[0], as well
as adding a couple of new things.

Patch 1 removes cpufreq_trigger_update()

Patches 2-4 move the cfs capacity margin out of the governor and into
cfs. This value is made tunable by a sysfs control in schedutil.

Patches 5-6 make cpufreq_update_util() aware of multiple scheduler
classes (cfs, rt & dl), and add storage & summation of these per-class
utilization values into schedutil.

Patches 7-8 introduces Dietmar's generic cpufreq implementation[1] of the
frequency invariance hook and changes the preprocessor magic in sched.h to
favor the cpufreq implementation over arch- or platform-specific ones.

If accepted, this series makes it trivial to port Steve and Juri's fine-grained
frequency selection in cfs and Vincent's rt utilization patch to the schedutil

[0] lkml.kernel.org/r/1456190570-4475-1-git-send-email-smuckle@xxxxxxxxxx
[1] https://git.linaro.org/people/steve.muckle/kernel.git/commit/1b7e57f89f14f7600e75e6fde42bf22d72927b3d
[2] lkml.kernel.org/r/1456190570-4475-5-git-send-email-smuckle@xxxxxxxxxx
[3] lkml.kernel.org/r/1456190570-4475-6-git-send-email-smuckle@xxxxxxxxxx
[4] lkml.kernel.org/r/1456190570-4475-7-git-send-email-smuckle@xxxxxxxxxx
[5] lkml.kernel.org/r/1456190570-4475-8-git-send-email-smuckle@xxxxxxxxxx
[6] lkml.kernel.org/r/1456190570-4475-11-git-send-email-smuckle@xxxxxxxxxx

Dietmar Eggemann (1):
cpufreq: Frequency invariant scheduler load-tracking support

Michael Turquette (7):
sched/cpufreq: remove cpufreq_trigger_update()
sched/fair: add margin to utilization update
sched/cpufreq: new cfs capacity margin helpers
cpufreq/schedutil: sysfs capacity margin tunable
sched/cpufreq: pass sched class into cpufreq_update_util
cpufreq/schedutil: sum per-sched class utilization
sched: prefer cpufreq_scale_freq_capacity

drivers/cpufreq/cpufreq.c | 29 ++++++++++++
drivers/cpufreq/cpufreq_governor.c | 5 +-
drivers/cpufreq/cpufreq_schedutil.c | 70 ++++++++++++++++++++++++----
drivers/cpufreq/intel_pstate.c | 5 +-
include/linux/cpufreq.h | 3 ++
include/linux/sched.h | 19 ++++++--
kernel/sched/cpufreq.c | 92 +++++++++++++++++++++++++------------
kernel/sched/deadline.c | 2 +-
kernel/sched/fair.c | 18 +++++++-
kernel/sched/rt.c | 2 +-
kernel/sched/sched.h | 29 +++++++++---
11 files changed, 219 insertions(+), 55 deletions(-)