abstract edits
parent
1af26bb8f4
commit
a6de5d32b3
|
@ -5,10 +5,7 @@ CPU frequency scaling is a critical component of power management on modern mobi
|
|||
On Android, a configurable policy (called the governor) dictates the CPU's frequency, and how it trades off performance for energy savings.
|
||||
Android's existing governors rely on recent CPU usage patterns to make this trade-off: The longer a CPU is active, the faster the governor sets the CPU's frequency.
|
||||
In this paper, we demonstrate that this assumption is flawed: the lower range of frequency settings on a typical mobile CPU does not actually save energy.
|
||||
As speeds drop below a (hardware-specific) frequency that we term $\fenergy$, the energy cost of each CPU cycle grows, and it is usually more energy-efficient to complete the work faster and turn the core off.
|
||||
|
||||
We further document a class of \emph{adaptive apps} that adjust their computational requirements to available CPU capacity.
|
||||
We show how adaptive apps present a misleading signal to existing governors, driving the selection of high, energy-inefficient frequencies without necessarily providing user-perceptible benefits in exchange.
|
||||
We present a range of governors, adapting the Android-default \schedutil, to incorporate an increasing range of these observations.
|
||||
Our final governor, \systemname, avoids any sort of inference by leveraging already extant performance hints that are used by Android to request performance boosts from \schedutil.
|
||||
We introduce \systemname, a governor that leverages this observation.
|
||||
We show that this governor, in addition to being considerably simpler than \schedutil, can both improve performance and reduce energy consumption on a typical Android phone.
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue