SFO15-411: Energy Aware Scheduling: Power vs. Performance policy
Speaker: Vincent Guittot, Juri Lellli
Date: September 24, 2015
★ Session Description ★
Share the impact of various patchsets, tunables, explore ideas on what else can be done.
★ Resources ★
Video:
Presentations: http://www.slideshare.net/linaroorg/sfo15411-energy-aware-scheduling-power-vs-performance-policy-part-1
http://www.slideshare.net/linaroorg/sfo15411-energy-aware-scheduling-power-vs-performance-policy-part-2
Etherpad: pad.linaro.org/p/sfo15-411
Pathable: https://sfo15.pathable.com/meetings/303083
★ Event Details ★
Linaro Connect San Francisco 2015 - #SFO15
September 21-25, 2015
Hyatt Regency Hotel
http://www.linaro.org
http://connect.linaro.org
2. 2
Sched-DVFS
Brief intro
Current status
Open questions/next-steps
SchedTune
Brief intro
Current status
Open questions/next-steps
Can’t cover all of the above here
Follow on deep dives in the hacking rooms
Agenda
3. 3
Based on CFS’ per-entity load tracking (PELT)
Plus optimizations: jump to max OPP
Key trigger points
enqueue_task_fair()
dequeue_task_fair()
task_tick_fair()
sched-DVFS: Intro
4. 4
Mike's RFCv3 was the last posting on this topic
In our EAS RFCv5 posting we added additional optimisations
Want to work with Mike to plan next steps
At LPC the landscape for sched-DVFS has changed to some extent (next slide)
A desired outcome from this discussion:
Who is working on what ?
What general time scales can they commit to ?
sched-DVFS: status
5. 5
Policy implementation
Do we have broad agreement on the current design ?
Do we need to have a scheduler policy governor interface (similar to but different from cpufreq) ?
Who’s working on this ?
Locking implementation
PeterZ wants RCU locking APIs to be used in hot paths shared with cpufreq core
Who should be working on this ?
sched-DVFS for other scheduler classes
Reports that RT threads aren’t getting serviced (unlike interactive governor)
Who should be working on this ?
sched-DVFS: Open questions/next-steps
6. 6
Aims to service the long standing maintainer request for a simple, central tunable for
Power reduction vs performance boosting
Extends Sched-DVFS for OPP selection and EAS for task placement
provides sched-DVFS with behaviours similar to other governors
e.g. Interactive, performance
supports EAS to trade-off power reduction for performance boosting
Fosters the collection of sensible information from user-space
To support better task scheduling decisions
Provides a simple, effective API to middleware
eg Android, ChromeOS
SchedTune: Intro
7. 7
Posted RFCv1 on LKML [1]
Extends sched-DVFS: biases OPP selection
Provides global and per-task tunable (based on cgroups)
Testing on ARM TC2,ARM Juno, partner silicon
Used an extended version of rt-app to report a “performance index”
Has triggered an interesting discussion with lots of valuable feedback
SchedTune: status
[1] https://lkml.org/lkml/2015/9/15/679
8. 8
Evaluate the benefits of the per-task approach
Is it worth it ?
Is cgroups the best user space API for this ? Alternatives (syscall, prctl) ?
Integration with EAS to bias task placement
Definition of power-performance space
Energy_diff() filtering
Initial prototype already available [1]
Evaluation wrt existing cpufreq governors
What use-cases should we focus on for comparison ?
How to setup a common workflow and shareable experimental data ?
SchedTune: Open questions/next-steps
[1] https://chromium-review.googlesource.com/#/c/296883/4