From 011a26a6811a0ccf915b4a216c7c12e5ab336f78 Mon Sep 17 00:00:00 2001 From: Oliver Date: Sat, 19 Aug 2023 21:24:21 -0400 Subject: [PATCH] Abstract --- sections/abstract.tex | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/sections/abstract.tex b/sections/abstract.tex index f8e1ee1..dd5f4e4 100644 --- a/sections/abstract.tex +++ b/sections/abstract.tex @@ -1,4 +1,14 @@ % -*- root: ../main.tex -*- +%!TEX root=../main.tex -Abstract here. +CPU frequency scaling is a critical component of power management on modern mobile phones, as a CPUs can (if not managed properly) represent a significant source of power consumption on the phone. +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 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.