Power Management Observability
Overview
As support is implemented for various power management mechanisms, it's useful to be able to observe resource power states, and to understand how the system is taking advantage (or not) of the system's various power management mechanisms.
PowerTOP
Power Management Related DTrace probes / DTrace Power Provider
Several power management related DTrace probes have been integrated into Solaris Nevada (build 82) to facilitate CPU power management observability. These probes are static (exported by the SDT DTrace provider), and are currently unstable (they may change and/or disappear). Longer term, it has been proposed that a more formal (and stable) probe interface could be defined that would eventually comprise a DTrace Power Provider. As we make more progress defining what such a probe interface should ultimately look like, we'll likely evolve the exiting probes, and will certainly want to add new ones...but for now these probes provide a way to observe CPU power management state transitions...
Please send any ideas for new probes, and feedback for how the existing probes could be improved to the development team alias
Probe Descriptions
| Probe Name | Probe Description | arg0 | arg1 | arg2 |
|---|---|---|---|---|
| cpu-change-speed | Probe that fires immediately following a successful change of speed for a CPU | cpudrv_devstate_t * CPU's device state (See sys/cpudrv.h) | cpudrv_pm_t * CPU's PM state (See sys/cpudrv.h) | cpudrv_pm_spd_t * The new speed (See sys/cpudrv.h) |
| idle-state-transition | Probe that fires immediately before an idle CPU enters a deeper idle state (e.g. halting), and immediately after returning from a deeper idle state. | Idle state 0 ==> Running 1..n ==> Deeper idle states | Not used | Not used |
Example DTrace scripts
- halted.d - Script to periodically report on CPU idle states