1. Introduction 1.1. Project/Component Working Name: PowerTOP for OpenSolaris 1.2. Name of Document Author/Supplier: rafael.vanoni@sun.com 1.3. Date of This Document: 09/01/08 1.4. Name of Major Document Customer(s)/Consumer(s): PSARC 1.5.4. Interest List: tesla-dev@opensolaris.org 2. Project Summary 2.1. Project Description: PowerTOP is an observability tool that shows how effectively the system is taking advantage of the CPU's power management features. By running the tool on an otherwise idle system, the user can see for how long the CPU is running at different power states. The utility analyzes system activity through DTrace and reports activity that is preventing the CPU from being power efficient. PowerTOP is an Intel utility initially developed for Linux that is being jointly ported by Sun and Intel through OpenSolaris, and has been released through OpenSolaris. The development team also aims at maintaining sync with the Linux version of the utility whenever possible by communicating with PowerTOP's Linux community and maintainers to discuss possible merges. 2.2. Risks and Assumptions: PowerTOP uses DTrace sdt probes that were putback into Solaris Nevada 82. Therefore, the user must be running snv82 or a later version of Solaris and have DTrace privileges. 3. Business Summary 3.1. Problem Area: It allows end users to improve their system towards power efficiency. 3.2. Market/Requester: Solaris users, developers, and system administrators interested in improving system power efficiency. 3.3. Business Justification: PowerTOP enables sysadmins, customers, developers, etc. to understand how the OS and applications impact power management. Considering the interest in improving Solaris' power efficiency, eco responsability, joint and open development through OpenSolaris, we believe this utility would be a positive addition to the sfw consolidation. 3.4. Competitive Analysis: PowerTOP for OpenSolaris was ported from the original Linux version. Linux has had this tool for some time. 3.5. Opportunity Window/Exposure: The tool has already seen a good deal of exposure through OpenSolaris. 3.6. How will you know when you are done? The tool has already reached version 1.1. 4. Technical Description: 4.1. Background/problem: Power efficiency has become a critical aspect of computer systems. Hardware manufacturers have responded to this necessity by offering CPUs (and other components) that can operate at different power consumption levels. Operating systems have followed by managing the hardware to achieve higher power efficiency, but have not exported the knowledge to allow system administrators and software developers to improve power efficiency at the application layer. The end user doesn't not know how the system is behaving in terms of PM. 4.2 Proposed Solution: PowerTOP is an open source project originally developped by Intel for Linux systems. It reports the behavior of the system's power management features (CPU frequency and energy state transitions) and an analysis of the system activity that is causing the CPU to go to higher power consumption states. Thus, the user can optimize its system towards power efficiency by interpreting the event report and acting in the appropriate manner. PowerTOP was ported to OpenSolaris through the Tesla project on opensolaris.org, and has had outside contributions (mainly from Intel) since the beggining. It contains GPLv2 source code with CDDL licensed makefiles. PowerTOP was redesigned as a DTrace consumer for power management related events, observing CPU state transitions and specific system activity through libdtrace(3) and a set of sdt probes. The utility executes three DTrace scripts on a pre defined interval, each script observes a specific aspect of power management: CPU idle state transitions, system events that can cause CPU wakeups and CPU frequency changes. The tool also consumes kstat data for laptop battery usage and to correlate the CPU frequency data gathered by DTrace with the system's current frequency. It provides a curses(3CURSES) based user interface, creating different subwindows to report the analysis of its DTrace scripts. 4.3. Bug/RFE Number(s): 6713863 4.4. Interfaces: (a) Exported Interfaces Pathnames are "Committed", User options are "Volatile". Interface Description ------------------------------------------------------------------------ SUNWpowertop package name /usr/bin/powertop symbolic link to isaexec /usr/bin/amd64/powertop executable /usr/bin/i386/powertop executable /usr/bin/sparcv9/powertop executable /usr/share/man/man1/powertop.1m manpage (CR 6723453) User options: -d, --dump [count] Read wakeups count times and print list of top offenders -t, --time [interval] Default time to gather data in seconds [1-100s] -v, --verbose Verbose mode, reports kernel cyclic activity -h, --help Show this help message (b) Imported Interfaces Interface Classification ARC case ------------------------------------------------------------------------ DTrace Commited PSARC/2001/466 DTrace libkstat Commited /etc/power.conf Commited PSARC/1992/202 Power Management (c) Release Binding Micro/Patch 4.6. Dependencies: DTrace probes introduced in snv82, kstat acpi_drv module (so it can report laptop battery status). Running the tool without the necessary DTrace probes causes the application to exit and output a DTrace message reporting the cause of the error. 5. Reference Documents: CR's 6713863, 6635705, 6643464 and man page. PSARC/2001/466 DTrace http://sac.sfbay/PSARC/2001/466/ PSARC/2003/425 DTrace sdt Provider http://sac.sfbay/PSARC/2003/425/ 6. Resources and Schedule: 6.1. Projected Availability: Currently available through OpenSolaris. 6.2. Product Approval Committee requested information: 6.4.1. Consolidation or Component Name: ON 6.3. ARC review type: Self Review