abstract edits

master
Lukasz Ziarek 2023-08-24 21:18:06 -04:00
parent 1af26bb8f4
commit a6de5d32b3
1 changed files with 3 additions and 6 deletions

View File

@ -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.