Presented by Date Event SFO15-411: Energy Aware Scheduling: Power vs. Performance policy Part 1 Vincent Guittot Vincent Guittot Wednesday 23 September 2015 SFO15
Apr 11, 2017
Presented by
Date
Event
SFO15-411: Energy Aware Scheduling: Power vs.
Performance policyPart 1
Vincent GuittotVincent Guittot
Wednesday 23 September 2015
SFO15
Introduction
EAS uses an energy model to select the most energy efficient CPU● Does this model outperform the dumbest power policy?
○ Always use LITTLE cpus if available○ Always prioritise use of core with lowest OPP
Setup
● mt8173evb board● kernel v4.2-rcX
○ EAS v5○ enabling EAS for arm64 and mt8173
● rt-app to generate workload● trace-cmd to record use case● highchart to display results
Use case
● 3 threads○ Ta & Tb: 95% of A53 @ 1.18Ghz○ Tc: 17% of A53 @ 1.18Ghz
● Total compute capacity○ Don’t fit in A53 @ 1.18Ghz○ But fit in A53 @ 1.4Ghz
● Config 1 (Dumb policy)○ Increase A53 OPP @ 1.4Ghz
● Config 2 (EAS Energy model)○ Use A57 @ 507Mhz for Tc
9.5msTa
9.5msTb
Tc
8msTa
8msTb
Tc 1.4ms
A53@ 1.18
Ghz
A53@ 1.4Ghz
1.7ms
Results
● Config 1 (Dumb policy)○ Ta, Tb & Tc on A53 @1.4Ghz
● Config 2 (EAS Energy model)○ Ta & Tb on A53 @1.18Ghz○ and Tc on A57 @507Mhz
● EAS v5 real behavior○ Ta & Tb on A53 @1.5~1.4Ghz○ and Tc on A57 @507Mhz
10sec config1 config2 easv5
A53 (J) 6.051 4.609 5.719
A57 (J) 0.283 0.771 0.772
Total (J) (including cache)
6.392 5.549 6.576
Sched-dvfs uses a margin not included by EAS
when using the energy model
Introduction
Kernel 4.3 will have a new version of Per Entity Load Tracking● smoother variation
○ include both runnable and blocked tasks● optimization of wake up hot path
Setup
● mt8173evb board● kernel v4.2-rc1
○ +tip/sched/core○ +under review mt8173 patches○ +enabling freq invariance for arm64 and mt8173
● New trace events to track load● rt-app to generate workload● trace-cmd to record use case● highchart to display results
Basic
● not linear○ logarithmic shape
● rounding effect○ small decrease whereas running
● periodic update (tick)○ step shape
● No update during idle 300mstask A
Task wake up / sleep
● Don’t impact usage and load● Only impact runnable
○ used to keep legacy load balancing zoom next slide
300mstask Atask B
loadrunnable
usage
Task wake up / sleep
● Don’t impact usage and load● Only impact runnable
○ used to keep legacy load balancing
small task activity
task Atask B
loadrunnable
usage
Task wake up / sleep
● Don’t impact usage and load● Only impact runnable
○ used to keep legacy load balancing
task Atask B
load
usage
CPU wake up / sleep
● Entering idle state○ Nothing
● Leaving idle state○ util and load are updated
300mstask Atask B
DVFS
● util is weighted by freq○ max value weighted too
● load & runnable not weighted○ bad impact on current load
balancing