Course Overview
Learn how to develop and enhance power-efficient device drivers for Linux systems.
Who should attend
This course is for Linux developers interested in learning how to write Linux device drivers with robust power management features. Students should be proficient in the C programming language, be familiar with the basic Linux kernel development environment and have some knowledge of kernel internals, have experience with Linux device drivers, and be comfortable developing in a Linux environment.
Prerequisites
You should:
- Be proficient in the C programming language.
- Be familiar with the basic Linux kernel development environment and have some knowledge of kernel internals.
- Have an understanding of Linux device drivers and experience in developing them, equivalent to have already taken LFD331, Developing Linux Device Drivers.
- Know the basics of compiling and linking programs, constructing Makefiles, etc.; i.e. be comfortable doing application developing in a Linux or UNIX environment.
- Experience with any major Linux distribution is helpful but not strictly required.
Course Objectives
Optimizing Linux Device Drivers for Power Efficiency is designed to show experienced programmers how to develop/enhance power efficient device drivers for Linux systems.
Upon mastering this material, you will be familiar with the power management infrastructure and code used under Linux, and know the appropriate APIs.
The information in this course will work with any major Linux distribution.
Course Content
- 01: Introduction
- 02: Procedures and Documentation
- 03: Power Management Overview
- 04: The Linux Kernel View of Power Management
- 05: Power Management in Android
- 06: Notifiers**
- 07: CPU Frequency Scaling**
- 08: CPU Idle
- 09: Ftrace
- 10: Perf
- 11: Measuring Power Usage and Latencies
- 12: Debugging power usage
- 13: Crash
- 14: Kernel Core Dumps
- 15: System-wide Power Management
- 16: Runtime Power Management
- 17: Common clock framework **
- 18: Regulator framework **
- 19: Retrofit for PM
- 20: Optimize for PM
- 21: Summary and Lookout
** These sections may be considered in part or in whole as optional. They contain either background reference material, specialized topics, or advanced subjects. The instructor may choose to cover or not cover them depending on classroom experience and time constraints.