Super moderator

残酷な

Rank: 8Rank: 8

Credits
2372
Device
Mi A1
Online time
16 Hours
Send PM

Fan Of MIUI India

[Others] [Device Team] EAS For Better Performance and Battery Life. Read More Here!

[ Promote]
2508 6 |
20:10, Aug-06-2018 | From PC
|
|
Go to reply no.
This post was edited by choukawaii at 21:16, Aug-06-2018



Greetings MIUIers!

Welcome to another episode of Fun With Chou!

This time we will talk about stuff that kind of heavy but might be important for us [especially developers] to understand: Energy Aware Scheduling [EAS]. Most of us probably are not aware for this kind of topic since it goes deeper than usual topic about performance and CPU governor. I hope I can make it easier or us to understand since the topic is too technical. But who doesn't want to have better performance and battery life for their phone?


What is EAS actually?

According to ARM's Developer site, Energy Aware Scheduling is an enhancement to Linux power management that unifying CPU power control under the Linux kernel.



EAS extends the Linux kernel scheduler to make it fully aware of the power/performance capabilities of the CPUs in the system, to optimize energy consumption for advanced multi-core SoCs including big.LITTLE.  With EAS, the Linux kernel will use the task load and a CPU "Energy Model" to control task placement to select the optimal CPU to run on.


How EAS works?

Current Linux power management, based on HMP [Completely Fair Scheduler] basically using odd manner on its subsystem, like a throughput based policy that place new task to the idle CPU. As you can see on the diagram below, CFS will choose either CPU#1 or CPU#3 for its new task.



But EAS is different since it considers the energy costs of those two options:
  • CPU#1: operating point must be moved up for both CPU#0 and CPU#1
  • CPU#3: no operating point change, but higher power used as per Power/Performance graph below




With those two options, EAS may choose CPU#1 since it just needs small addition of energy than CPU#3. Because EAS doesn't evaluate all possible options. It simply use the faster possible way with minimum efforts and energy. The schedule is like a lazy but clever employee.

In other words, EAS is designed to divide the ongoing process and choose the closest idle cores, and only waking up the other idle cores when it's really needed. So it doesn't give a
performance hits in key scheduler pathways. Instead,  EAS narrows down the search space to:
  • CPU the task ran on last time.
  • CPU chosen by a simple heuristic which works out where the task fits best.


Based on the energy model, EAS evaluates these two options that have most energy efficient.


EAS implementation in real life

While some developers decided to shut down the "unused cores" [read: performance cores] to maintain the battery life, EAS can do better. Since it can give the performance you need with lower power usage and utilize the cores faster and smarter, and on the paper, it'll give you more longer battery life.

The problem might lies on us and probably the imperfection of its implementation. Because in real life, we tend to draw the performance to the max to play such heavy games and hoping that it'll give better battery life and SOT, and I know that you will be disappointed.

We should know that power efficiency on EAS will perform better at multi-tasking and normal usage. But to draw to maximum performance usage, aside giving us best possible performance, it'll makes the power efficiency schedule task useless.

That's all folks! See you in another Fun With Chou!




Big thanks to:
@candicesu, @ollylopes, @Pipboy98



Source:
Favorite Share

Rated by 1 person   Experience Reason  

drlaxin + 1 Awesome!

Experience +1  View Rating Log


BACK TO BASIC WITH FUN WITH CHOU | FREE YOUR MIND WITH CHOU TECHBITES

Gold Member

Rank: 3Rank: 3

Credits
418
Device
Mi 8 SE
Online time
20 Hours
Send PM

Fan Of MIUI India

09:01, Aug-07-2018 | From PC
|
Thanks for Sharing

Gold Member

Rank: 3Rank: 3

Credits
318
Device
Redmi Note 4 Qualcomm
Online time
10 Hours
Send PM

Fan Of MIUI India

10:55, Aug-07-2018 | From PC
|
Thanks for sharing.

Elite Member

Rank: 6Rank: 6

Credits
5361
Device
Mi 6
Online time
222 Hours
Send PM

Fan Of MIUI India

12:17, Aug-07-2018 | From PC
|
Thanks for Sharing.

Diamond Member

Rank: 5Rank: 5

Credits
842
Device
Others
Online time
118 Hours
Send PM

Fan Of MIUI India

05:48, Aug-08-2018 | From PC
|
Interesting information, haven't heard of it. Thanks.

Senior Member

Rank: 2

Credits
46
Device
Redmi Note 5/Pro
Online time
0 Hours
Send PM

Fan Of MIUI IndiaIndia Independence Day

00:54, Aug-10-2018 | From PC
|
Thanks for sharing
MIUI Global Beta tester
MIUI Global Forum

Gold Member

Rank: 3Rank: 3

Credits
341
Device
Mi 8
Online time
45 Hours
Send PM
13:22, Oct-04-2018 | From PC
|
Informative Thread

Credits Management

Quick Reply Top Return to the list