Debugging Embedded Linux (Kernel) Power Management – ELCE 2012
Tero Kristo, Linux kernel developer at Texas Instruments, explains how to debug power management in Embedded Linux at ELCE 2012.
The presentation will talk about debugging various problems a kernel developer can face when working with power management. These include hardware related issues (IC / HW layout bugs, bad documentation) and software related (kernel bugs, driver problems, adding new kernel features, bad userspace behavior.) Along with presenting some of these problems, I will discuss about ways to debug these… power management typically requires specific tools to be used. I will base the discussion on my first hand experience from working with Linux PM. Target audience is (kernel) software developers interested in power management.
The presentation is divided into 3 sections:
- Debugging tools / methods for PM
- Kernel power management features
- Suspend – echo mem > /sys/power/state
- Cpuidle – Debug info available at /sys/devices/system/cpu/*/cpuidle/*
- Regulators – Userspace API available at /sys/class/regulator
- Clock framework – Userspace interface: /sys/kernel/debug/clk/*
- Cpufreq – Debug info in /sys/devices/system/cpu/*/cpufreq/*, /sys/class/regulator/* and /sys/kernel/debug/clk/
- Typical power management problems / bugs
- Device crash
- Device malfunction
- Increased power consumption – Can be kernel, hardware or userspace issues