November 16th, 2016

When you decide to travel at the speed of light, you have to accept the consequences

One of the challenges of developing Windows 8 for ARM devices is that, well, for a long time, there were no Windows ARM devices to test on, which made it more difficult to verify that the designs were suitable and that performance was acceptable. Eventually, the devices started to materialize, and it became possible to run Windows on the ARM devices to see how well things actually worked.

Naturally, the devices that initially showed up were not the final “ready for market” devices. After all, the hardware companies were busy developing the devices at the same time the Windows team was developing the software to run on them.

One of the problems in the earlier builds of the devices was that the power management drivers and firmware were not very reliable. The devices would sometimes drop into low-power mode even though they were in active use, or they would shut off the touch sensor due to inactivity and be slow to power it back on when the user touched the screen. These are the sorts of glitches you expect from something that is still under development.

One of the tricks we used to isolate these firmware and driver glitches was to apply a configuration we nicknamed the speed of light. In this configuration, all the power management features were disabled, and the machine ran at full power all the time, never shutting off anything. The idea here is that the speed of light was the absolute maximum performance you could get from the device, in the same way that in physics, the speed of light is the absolute maximum speed at which an object can travel.

Now, in practice, the speed of light performance would not be achieved, but it at least let us know when a performance problem could be blamed on hardware (and therefore could be improved by future iterations of hardware), or whether it was fundamentally a software issue. For example, if calculations took too long under the speed of light configuration, then you knew that you had no choice but to do some software optimization of the calculations because you’re already pushing the hardware to the maximum. The hardware isn’t going to save you.

I was amused by one piece of email that was sent to the performance team regarding the speed of light configuration.

Hi, I followed the instructions to set up the speed of light configuration, and I found that it crashes after about ten to thirty minutes of continuous use.

The speed of light configuration is totally unsupported. Since all the power management safeguards were disabled, the thermal sensor that said “Whoa, I’m running really hot! Could you drop to low power for a while?” was being ignored. A common side effect of the speed of light configuration was random crashes due to overheating.

Such are the dangers of travelling at the speed of light.

Topics
History

Author

Raymond has been involved in the evolution of Windows for more than 30 years. In 2003, he began a Web site known as The Old New Thing which has grown in popularity far beyond his wildest imagination, a development which still gives him the heebie-jeebies. The Web site spawned a book, coincidentally also titled The Old New Thing (Addison Wesley 2007). He occasionally appears on the Windows Dev Docs Twitter account to tell stories which convey no useful information.

0 comments

Discussion are closed.