public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [RFC][PATCH 0/7] Power-aware scheduling v2
@ 2013-10-11 17:19 Morten Rasmussen
  2013-10-11 17:19 ` [RFC][PATCH 1/7] Initial power driver interface infrastructure Morten Rasmussen
                   ` (7 more replies)
  0 siblings, 8 replies; 29+ messages in thread
From: Morten Rasmussen @ 2013-10-11 17:19 UTC (permalink / raw)
  To: mingo, peterz
  Cc: pjt, arjan, rjw, dirk.j.brandewie, vincent.guittot, alex.shi,
	preeti, efault, corbet, tglx, catalin.marinas, morten.rasmussen,
	linux-kernel, linaro-kernel

Hi,

I have revised the previous power scheduler proposal[1] trying to address as
many of the comments as possible. The overall idea was discussed at LPC[2,3].
The revised design has removed the power scheduler and replaced it with a high
level power driver interface. An interface that allows the scheduler to query
the power driver for information and provide hints to guide power management
decisions in the power driver.

The power driver is going to be a unified platform power driver that can
replace cpufreq and cpuidle drivers. Generic power policies will be optional
helper functions called from the power driver. Platforms may choose to
implement their own policies as part of their power driver.

This RFC series prototypes a part of the power driver interface (cpu capacity
hints) and shows how they can be used from the scheduler. More extensive use of
the power driver hints and queries is left for later. The focus for now is the
power driver interface. The patch series includes a power driver/cpufreq
governor that can use existing cpufreq drivers as backend. It has been tested
(not thoroughly) on ARM TC2. The cpufreq governor power driver implementation
is rather horrible, but it illustrates how the power driver interface can be
used. Native power drivers is on the todo list.

The power driver interface is still missing quite a few calls to handle: Idle,
adding extra information to the sched_domain hierarchy to guide scheduling
decisions (packing), and possibly scaling of tracked load to compensate for
frequency changes and asymmetric systems (big.LITTLE).

This set is based on 3.11. I have done ARM TC2 testing based on linux-linaro
2013.08[4] to get cpufreq support for TC2.


Morten

[1] https://lkml.org/lkml/2013/7/9/314

[2] http://etherpad.osuosl.org/lpc2013-power-efficient-scheduling

[3] http://www.linuxplumbersconf.org/2013/ocw//system/presentations/1263/original/Unifying_Power_Policies_LPC.pdf

[4] http://git.linaro.org/gitweb?p=kernel/linux-linaro-tracking.git


Morten Rasmussen (7):
  Initial power driver interface infrastructure
  sched: power: Power driver late callback interface
  sched: power: go_faster/slower power driver hints
  sched: power: Remove power capacity hints for kworker threads
  sched: power: Increase cpu capacity based on rq tracked load
  sched: power: cpufreq: Initial schedpower cpufreq governor/power
    driver
  sched: power: Let the power driver choose the best wake-up cpu

 arch/arm/Kconfig                     |    4 +
 drivers/cpufreq/Kconfig              |   11 ++
 drivers/cpufreq/Makefile             |    1 +
 drivers/cpufreq/cpufreq_schedpower.c |  218 ++++++++++++++++++++++++++++++++++
 include/linux/sched/power.h          |   37 ++++++
 kernel/sched/Makefile                |    1 +
 kernel/sched/core.c                  |    1 +
 kernel/sched/fair.c                  |   53 ++++++++-
 kernel/sched/power.c                 |   73 ++++++++++++
 kernel/sched/sched.h                 |   32 +++++
 10 files changed, 430 insertions(+), 1 deletion(-)
 create mode 100644 drivers/cpufreq/cpufreq_schedpower.c
 create mode 100644 include/linux/sched/power.h
 create mode 100644 kernel/sched/power.c

-- 
1.7.9.5



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

end of thread, other threads:[~2013-10-18 13:43 UTC | newest]

Thread overview: 29+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-10-11 17:19 [RFC][PATCH 0/7] Power-aware scheduling v2 Morten Rasmussen
2013-10-11 17:19 ` [RFC][PATCH 1/7] Initial power driver interface infrastructure Morten Rasmussen
2013-10-11 17:19 ` [RFC][PATCH 2/7] sched: power: Power driver late callback interface Morten Rasmussen
2013-10-14 13:42   ` Peter Zijlstra
2013-10-11 17:19 ` [RFC][PATCH 3/7] sched: power: go_faster/slower power driver hints Morten Rasmussen
2013-10-12  2:58   ` Michael wang
2013-10-14 12:42     ` Morten Rasmussen
2013-10-14 13:48   ` Peter Zijlstra
2013-10-14 15:55     ` Morten Rasmussen
2013-10-11 17:19 ` [RFC][PATCH 4/7] sched: power: Remove power capacity hints for kworker threads Morten Rasmussen
2013-10-14 13:33   ` Peter Zijlstra
2013-10-14 15:14     ` Arjan van de Ven
2013-10-17 16:40       ` Morten Rasmussen
2013-10-17 16:54         ` Peter Zijlstra
2013-10-17 17:18           ` Arjan van de Ven
2013-10-18  8:47             ` Morten Rasmussen
2013-10-18 13:43               ` Arjan van de Ven
2013-10-18  8:38           ` Morten Rasmussen
2013-10-14 16:10     ` Morten Rasmussen
2013-10-14 16:13       ` Arjan van de Ven
2013-10-14 17:19         ` Morten Rasmussen
2013-10-11 17:19 ` [RFC][PATCH 5/7] sched: power: Increase cpu capacity based on rq tracked load Morten Rasmussen
2013-10-11 17:19 ` [RFC][PATCH 6/7] sched: power: cpufreq: Initial schedpower cpufreq governor/power driver Morten Rasmussen
2013-10-11 17:19 ` [RFC][PATCH 7/7] sched: power: Let the power driver choose the best wake-up cpu Morten Rasmussen
2013-10-14 13:32 ` [RFC][PATCH 0/7] Power-aware scheduling v2 Peter Zijlstra
2013-10-14 17:15   ` Morten Rasmussen
2013-10-14 17:31     ` Peter Zijlstra
2013-10-15 17:05       ` Morten Rasmussen
2013-10-15  9:57   ` Preeti U Murthy

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox