[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, 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 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
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(-)