The Curious Case
of a Sick Google Glass
By Wolfgang Richter
During recent experiments for a research paper (“Towards
Wearable Cognitive Assistance,” ACM MobiSys 2014), my
research group observed very strange symptoms from our
1 Most of our experiments were done to study
the impact of latency on cognitive assistance applications,
such as programs designed to remind you who is in front
of you or notify you that it is safe to cross the street. We observed a large variation in latency, which was unexplainable by the usual culprits such as poorly performing WiFi
networks. We had isolated all the possible sources outside
of the Google Glass, but the unknown source of latency jitter was still ruining our experimental results. At this point,
we knew we had to figure out what was going on inside the
Google Glass itself.
Someone suggested early on that the device might
1 Find out more about Glass at http://www.google.com/glass/start.
2 Read more about cognitive assistance at http://elijah.cs.cmu.edu/
be doing some tricks to cool itself down. During our
experiments, we ran the device continuously capturing
video and transmitting frames over the network. When you
imagine a Google Glass device it is a bunch of electronics
that generate heat while doing their work. There is no space
for a fan, and it would probably be uncomfortable, so the
only “heatsink” is the human head. Of course, people can
only tolerate so much heat, thus the Google Glass must
carefully manage its thermal footprint. Being mobile
requires tricks most developers and researchers are not
After investigating, we found the Google Glass was
dynamically scaling the frequency of its CPU to reduce
energy consumption and generated heat. It may have been
turning off its radio, or putting other components into
a low power state more often as well, but CPU frequency
was the easiest metric for us to follow. This is a common
engineering trick used to reduce energy usage on laptops,
desktops, and even servers. But, when workloads increase,
the CPU frequency usually scales back up to match user
Counterintuitively, when under heavy load the Google
Glass reduces CPU frequency. Instead of trying to do
more work and keep up, it does less work! This is how
it manages heat—by limiting the amount of work it
completes at any given moment. I have not seen end-to-end
system latency versus CPU frequency studied much in the
research literature, but Figure 1 shows the effect of CPU
frequency on overall application response time (think of
the application here as a ping test) over a WiFi network to a
server a couple of hops away.
There are a couple of methods to stop CPU frequency
scaling on the Google Glass. The first, and more reliable,
method would be to modify the Google Glass software
Figure 1. Latency trace over time as CPU frequency varies
over WiFi to a couple hops away server.
0 20 40 60 80 100 120 140 160
Response time CPU freq
Source: “Towards Wearable Cognitive Assistance,” © ACM.
To appear in MobiSys’ 14 Conference proceedings.
The XRDS blog highlights a range of topics from security and privacy to
neuroscience. Selected blog posts, edited for print, will be featured in every issue.
Please visit xrds.acm.org/blog to read each post in its entirety.