Messages in this thread | | | From | Michael Turquette <> | Subject | [PATCH 0/4] scheduler-based cpu frequency scaling | Date | Mon, 4 May 2015 15:10:37 -0700 |
| |
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.
This work is a different take on the patches I posted in November: 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. Before sinking too much time into extensive testing I'd like to get feedback on the general design.
Michael Turquette (3): sched: sched feature for cpu frequency selection sched: export get_cpu_usage & capacity_orig_of sched: cpufreq_sched_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 | 311 ++++++++++++++++++++++++++++++++++++++++ kernel/sched/fair.c | 48 +++---- kernel/sched/features.h | 6 + kernel/sched/sched.h | 39 +++++ 10 files changed, 475 insertions(+), 34 deletions(-) create mode 100644 kernel/sched/cpufreq_cfs.c
-- 1.9.1
| |