Interview with Peter De Schrijver
Power management: a system wide challenge
Q: Could you briefly introduce yourself?
My name is Peter De Schrijver. I have been working on embedded linux systems since 2001. At the end of 2007 I started working for Nokia on power management for what would become the N900. After Nokia canceled Maemo development, I moved to NVIDIA to work on power management for their Tegra line of SoCs.
Q: What will your talk be about, exactly? Why this topic?
The talk will start by explaining the main factors which influence power consumption in CMOS logic. From there on power saving techniques (both hardware and software) will be covered. The talk will conclude with some measurement and debugging techniques. Power management has become increasingly important for various reasons. Smartphones have become more powerful, but the battery capacity hasn’t increased at the same rate. Also server performance is increasingly limited by power and thermal constraints.
Q: What do you hope to accomplish by giving this talk? What do you expect?
I hope to give the audience some insight in how each part of the system influences power consumption and how a developer can save power by optimizing the layer she/he is working on. I also hope developers will understand the tradeoffs involved in power optimizations.
Q: Do you still see some low hanging fruit in the Linux kernel in the domain of power management or will future optimizations be more and more difficult?
I don’t think there is any low hanging fruit in the Linux kernel anymore. There are some gains possible still in the area of multi-core management (how many and which cores should be active?). Some of the existing mechanisms (e.g. cpuidle and cpufreq) would benefit from better integration. There are also a number of missing features in the mainline kernel (such as DVFS for devices) which would help avoiding duplicated code in vendor trees. Some features (such as runtime PM) are also not widely used yet today.
Q: What can application developers do to minimize power consumption on a Linux system? And do Android/mobile app developers have to take into account the same measures?
The general guideline is that applications should try to batch their work in as large chunks as reasonably possible. For example, if your application uses timers, try to group them together so the work can be done in 1 CPU wakeup instead of several. Android automatically suspends background applications unless they request otherwise, which helps in keeping CPU usage low. Grouping work can still result in measureable power savings though.
Q: What are the most important debugging mechanisms and tools for developers if they want to measure the power consumption generated by their application on a Linux system?
Powertop is a good tool to measure the amount of wakeups. If you’re working on a mobile or embedded power sensitive application, you might have access to boards which allow per rail power measurements. These are very good tools to optimize your system.
Q: Have you enjoyed previous FOSDEM editions?
Yes, absolutely! FOSDEM has always been an interesting conference both because of the large number of technical talks and the amount of interesting people attending.
Creative Commons License
This interview is licensed under a Creative Commons Attribution 2.0 Belgium License.