linux-pm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH RFC v2 0/4] scheduler-driven cpu frequency selection
@ 2015-05-12  2:13 Michael Turquette
  2015-05-12  2:13 ` [PATCH RFC v2 1/4] arm: Frequency invariant scheduler load-tracking support Michael Turquette
                   ` (3 more replies)
  0 siblings, 4 replies; 11+ messages in thread
From: Michael Turquette @ 2015-05-12  2:13 UTC (permalink / raw)
  To: peterz, mingo
  Cc: linux-kernel, linux-pm, preeti, Morten.Rasmussen, riel, efault,
	nicolas.pitre, daniel.lezcano, dietmar.eggemann, vincent.guittot,
	amit.kucheria, juri.lelli, rjw, viresh.kumar, ashwin.chaugule,
	alex.shi, abelvesa, Michael Turquette

This series implements an event-driven cpufreq governor that scales cpu
frequency as a function of cfs runqueue utilization. The intent of this RFC is
to get some discussion going about how the scheduler can become the policy
engine for selecting cpu frequency, what limitations exist and what design do
we want to take to get to a solution.

V2 changes the interface exposed from the governor to cfs. Instead of being a
"pull" model where get_cpu_usage is used to fetch the utilization, that
information is pushed into the governor. After making this change it becomes
clear that selecting a new capacity target for a cpu can be done entirely
within fair.c without any knowledge of cpufreq or the hardware. I didn't go
that far in this version of the series, but it is something to consider. Such a
change would mean that we do not pass in a utilization value but instead a
capacity target.

RFC v1 from May 4, 2015:
http://lkml.kernel.org/r/<1430777441-15087-1-git-send-email-mturquette@linaro.org>

Old, original idea from October/November of 2014:
http://lkml.kernel.org/r/<1413958051-7103-1-git-send-email-mturquette@linaro.org>

This series depends on having frequency-invariant representations for load.
This requires Vincent's recently merged cpu capacity rework patches, as well as
a new patch from Morten included here. Morten's patch will likely make an
appearance in his energy aware scheduling v4 series.

Thanks to Juri Lelli <juri.lelli@arm.com> for contributing to the development
of the governor.

A git branch with these patches can be pulled from here:
https://git.linaro.org/people/mike.turquette/linux.git sched-freq

Smoke testing has been done on an OMAP4 Pandaboard and an Exynos 5800
Chromebook2. Extensive benchmarking and regression testing has not yet been
done.

Michael Turquette (3):
  sched: sched feature for cpu frequency selection
  sched: expose capacity_of in sched.h
  sched: cpufreq_cfs: pelt-based cpu frequency scaling

Morten Rasmussen (1):
  arm: Frequency invariant scheduler load-tracking support

 arch/arm/include/asm/topology.h |   7 +
 arch/arm/kernel/smp.c           |  53 ++++++-
 arch/arm/kernel/topology.c      |  17 ++
 drivers/cpufreq/Kconfig         |  24 +++
 include/linux/cpufreq.h         |   3 +
 kernel/sched/Makefile           |   1 +
 kernel/sched/cpufreq_cfs.c      | 343 ++++++++++++++++++++++++++++++++++++++++
 kernel/sched/fair.c             |  24 ++-
 kernel/sched/features.h         |   6 +
 kernel/sched/sched.h            |  13 ++
 10 files changed, 484 insertions(+), 7 deletions(-)
 create mode 100644 kernel/sched/cpufreq_cfs.c

-- 
1.9.1

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2015-06-29 16:51 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-05-12  2:13 [PATCH RFC v2 0/4] scheduler-driven cpu frequency selection Michael Turquette
2015-05-12  2:13 ` [PATCH RFC v2 1/4] arm: Frequency invariant scheduler load-tracking support Michael Turquette
2015-05-22 23:43   ` Rafael J. Wysocki
2015-05-12  2:13 ` [PATCH RFC v2 2/4] sched: sched feature for cpu frequency selection Michael Turquette
2015-05-12  2:13 ` [PATCH RFC v2 3/4] sched: expose capacity_of in sched.h Michael Turquette
2015-05-12  2:13 ` [PATCH RFC v2 4/4] sched: cpufreq_cfs: pelt-based cpu frequency scaling Michael Turquette
2015-05-13  9:19   ` Paul Bolle
2015-05-18 16:42   ` Juri Lelli
2015-06-29 16:51     ` Michael Turquette
2015-05-23  0:10   ` Rafael J. Wysocki
2015-06-10  6:23   ` Alex Shi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).