Matthew Locke November 2007 A Linux Power Management Architecture.

Slides:



Advertisements
Similar presentations
purpose Search : automation methods for device driver development in IP-based embedded systems in order to achieve high reliability, productivity, reusability.
Advertisements

WHAT IS AN OPERATING SYSTEM? An interface between users and hardware - an environment "architecture ” Allows convenient usage; hides the tedious stuff.
Chapter 13 Embedded Systems
1 Soft Timers: Efficient Microsecond Software Timer Support For Network Processing Mohit Aron and Peter Druschel Rice University Presented By Jonathan.
Home: Phones OFF Please Unix Kernel Parminder Singh Kang Home:
Chapter 13 Embedded Systems
Comparative Operating Systems Fall 2001 An Examination of Embedded Linux as a Real Time Operating System Mark Mahoney.
The Design of Robust and Efficient Microkernel ManRiX, The Design of Robust and Efficient Microkernel Presented by: Manish Regmi
I/O Tanenbaum, ch. 5 p. 329 – 427 Silberschatz, ch. 13 p
CS 423 – Operating Systems Design Lecture 22 – Power Management Klara Nahrstedt and Raoul Rivas Spring 2013 CS Spring 2013.
Mobile Middleware for Energy-Awareness Wei Li
Unit - VI. Linux and Real Time: Real Time Tasks Hard and Soft Real Time Tasks Linux Scheduling Latency Kernel Preemption Challenges in Kernel Preemption.
Tool Integration with Data and Computation Grid GWE - “Grid Wizard Enterprise”
Processes Introduction to Operating Systems: Module 3.
Embedded System Lab. 김해천 The TURBO Diaries: Application-controlled Frequency Scaling Explained.
Chapter 2 Processes and Threads Introduction 2.2 Processes A Process is the execution of a Program More specifically… – A process is a program.
1 Review of Process Mechanisms. 2 Scheduling: Policy and Mechanism Scheduling policy answers the question: Which process/thread, among all those ready.
PM Summit fall out 2 CE Vendors Spoke at Summit  CELF presented  TI presented  Free Scale presented  Nokia presented  MLI represented.
Software Deployment and Mobility. Introduction Deployment is the placing of software on the hardware where it is supposed to run. Redeployment / migration.
Technical Seminar Presentation 2004 Presented by- Geetanjali Konhar EE O81 1 Dynamic power management for embedded system “ Dynamic power management.
Tool Integration with Data and Computation Grid “Grid Wizard 2”
CENG334 Introduction to Operating Systems 1 Erol Sahin Dept of Computer Eng. Middle East Technical University Ankara, TURKEY URL:
E-MOS: Efficient Energy Management Policies in Operating Systems
1.  System Characteristics  Features of Real-Time Systems  Implementing Real-Time Operating Systems  Real-Time CPU Scheduling  An Example: VxWorks5.x.
Kernel Modules – Introduction CSC/ECE 573, Sections 001 Fall, 2012.
The World Leader in High Performance Signal Processing Solutions Linux Industrial I/O Subsystem Open Platform Solutions Michael Hennerich.
CSCI/CMPE 4334 Operating Systems Review: Exam 1 1.
Advanced Operating Systems CS6025 Spring 2016 Processes and Threads (Chapter 2)
Evaluation of Advanced Power Management for ClassCloud based on DRBL Rider Grid Technology Division National Center for High-Performance Computing Research.
1 Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free-electrons.com TI OMAP 3530 power management.
1 Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free-electrons.com Power management Power Management.
Input and Output Optimization in Linux for Appropriate Resource Allocation and Management James Avery King.
Introduction to Operating Systems Concepts
Computer System Structures
DISCOVERING COMPUTERS 2018 Digital Technology, Data, and Devices
Overview Motivation (Kevin) Thermal issues (Kevin)
Android Mobile Application Development
Introduction to Kernel
REAL-TIME OPERATING SYSTEMS
Power Management in Embedded Systems
Chapter 19: Real-Time Systems
Current Generation Hypervisor Type 1 Type 2.
Wireless Communication and Networks
Power Management Michael Opdenacker Thomas Petazzoni Free Electrons
chapter 6- Android Introduction
OPERATING SYSTEMS CS3502 Fall 2017
Getting maximum mileage out of tickless
CS 3305 System Calls Lecture 7.
Reducing OS noise using offload driver on Intel® Xeon Phi™ Processor
The PCI bus (Peripheral Component Interconnect ) is the most commonly used peripheral bus on desktops and bigger computers. higher-level bus architectures.
Chapter 3: Windows7 Part 1.
An Introduction to Device Drivers
CSCI 315 Operating Systems Design
QNX Technology Overview
Processor Fundamentals
I/O Systems I/O Hardware Application I/O Interface
Mid Term review CSC345.
Architectural Support for OS
Chapter 5: I/O Systems.
Operating Systems Lecture 3.
Chapter 19: Real-Time Systems
CSE 451: Operating Systems Autumn 2003 Lecture 2 Architectural Support for Operating Systems Hank Levy 596 Allen Center 1.
Chapter 13: I/O Systems I/O Hardware Application I/O Interface
Introduction to Computer Systems
Outline - Energy Management
CSE 451: Operating Systems Winter 2003 Lecture 2 Architectural Support for Operating Systems Hank Levy 412 Sieg Hall 1.
Architectural Support for OS
The bios.
COMP755 Advanced Operating Systems
Chapter 13: I/O Systems “The two main jobs of a computer are I/O and [CPU] processing. In many cases, the main job is I/O, and the [CPU] processing is.
Presentation transcript:

Matthew Locke November 2007 A Linux Power Management Architecture

Agenda  Introduction  Features in Kernel and User space  Pulling it together  Future work

Introduction  Typical mainline Linux power management features:  Per platform idle loop allows platforms to place processor in a low power state  Suspend-to-RAM - memory in auto refresh, CPU in a low power state, drivers in a low power state  Cpu frequency scaling  Of course, main target of these features is the x86 laptop  Power management for embedded mobile devices has been custom development per device and different for every SoC  Over the last year, the mailing list and development activity has increased dramatically  2nd Linux PM Summit was held this year

System Suspend/Resume  Recently the system suspend/resume code was redesigned  Better support for platform specific behavior  Better support for hibernation (suspend-to-disk)  Pm_ops were reworked to ensure system follows correct steps to prepare for a suspend.  Suspend-to-disk code is renamed to hibernation with a clear distinction from suspend. Also, being reworked to ensure memory snapshot, userspace and drivers are all handled correctly for stable behavior.  Expect longer life and more stable behavior on your laptop in the next couple releases!

Cpufreq  The cpufreq stack manages the runtime power management for the CPU.  Some ACPI platforms trigger voltage changes based on CPU frequency changes.  The embedded platforms do not have a mechanism to change voltage  The “on-demand” governor changes cpu frequency based on load.  Cpufreq is connected to the clock framework only on OMAP1 and OMAP2

Dynamic Tick / clockevent  The whole time subsystem was redesigned to eliminate the periodic timer which is very good for power management.  Clockevent is the bottom layer with High Resolution Timers and time subsystem on top.  Now there is an optimized platform independent way to find the next event  Platform idle loop uses this standard API to find the next event and decide the course of action

Latency Framework  Tracks minimal latency the system (including all drivers) can tolerate in order not to break.  API includes  Register driver/subsystem with framework  Set a latency constraint  Subscribe to notification for latency changes  Get system wide latency constraint  Only a few drivers use the latency framework. It will take a while for driver maintainers to update.  An example is an audio driver that knows it will get an interrupt when the hardware has 200 usec of samples left in the DMA buffer; in that case the driver can set a latency constraint of, say, 150 usec.  Reworked into pm_qos patches

CPUidle Framework  Framework for selecting optimal CPU power state in the idle loop.  CPU power states are defined by descriptors  Builds on dynamic tick and latency framework

CPUidle Framework  Two different governors are provided:  Menu - analyzes the latency from the latency framework, latency from the descriptor and the next clockevent from dynamic tick to determine the lowest cpu state possible  Ladder - uses activity metrics to step the CPU power state into the right mode. Mostly applicable to ACPI platform

Operating Points  Operating Point is a group of power parameters set to specific values.  Parameters are CPU clock and voltage but may include other parameters such as bus clocks.  Run time power consumption can be reduced by lowering voltage and frequency  Several attempts were made over the last year to mainline a operating point implementation but were rejected  On x86 operating points are hidden in ACPI so the challenge is to get a solution that works for other platforms without affecting x86. Current thinking is to incorporate voltage scaling into the lower layer of cpufreq

Device runtime power management  Userspace control over driver power management is being deprecated  /sys/…/power/state file is removed  Drivers are expected to manage their device power management state during runtime to minimize power consumption.  Philosophy is that drivers know best when and how to put a device into a low power state during runtime  USB stack is leading this effort. USB stack has a autosuspend/resume feature for the host and devices. It watches for inactivity and turns stuff off.

OHM - Open Hardware Manager  OHM is a small open source systems daemon which sits above HAL and abstracts out common hardware management tasks such as system wide inhibit action control  The main use cases described are taking action based on subsystem inactivity  Used by OLPC  From OHM website

OLPC, maemo, and Moblin  According to material presented at the PM summit ‘07, Nokia’s stack looks similar to picture on previous slide  Moblin is a Intel sponsored/funded project for a internet tablet application stack. A Policy manager is a part of the stack and is currently being designed.  OLPC is working a policy manager based on OHM

Pulling it all together…  A pm architecture using the latest components enables some very aggressive policies to reduce power consumption.

Pulling it all together…  Automatically setting cpu into lowest power state possible when system is idle.  Enabling drivers to drop into low power states when inactive.  Frequency and voltage scaling to reduce power consumption at runtime.

What’s next  Migrate more drivers to manage their own power states following USB as the example  Integrate voltage scaling for embedded platforms into cpufreq somewhere  More userspace development: OHM, policy managers, HAL.  Linux powered devices have the longest battery life!

Matthew Locke