'\" te .\" Copyright (C) 2009, Sun Microsystems, Inc. All Rights Reserved .\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License. You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. .\" See the License for the specific language governing permissions and limitations under the License. When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the .\" fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner] .TH POWER.CONF 5 "June 20, 2021" .SH NAME power.conf \- Power Management configuration information file .SH SYNOPSIS .nf \fB/etc/power.conf\fR .fi .SH DESCRIPTION The \fBpower.conf\fR file is used by the Power Management configuration program \fBpmconfig\fR(8), to initialize the settings for Power Management. If you make changes to this file, you must run \fBpmconfig\fR(8) manually for the changes to take effect. .sp .LP Power Management addresses two specific management scenarios: management of individual devices and management of the whole system. An individual device is power managed if the device supports multiple power levels and if the device driver uses Power Management interfaces provided by the kernel to save device power when the device is idle. .sp .LP All entries in the \fBpower.conf\fR file are processed in the order that they occur in the file. .SS "Automatic Device Power Management" Devices with drivers that use the automatic device Power Management interfaces are automatically power managed if the \fBautopm\fR entry is enabled. The \fBautopm\fR entry is described near the end of this section. The \fBpm-components\fR property describes the Power Management model of a device driver to the Power Management framework. See \fBpm-components\fR(9P) for more information. .sp .LP When a component has been idle at a given power level for its threshold time, the power level of the component is reduced to the next lower power level of that component, if any. For devices which implement multiple components, each component is power-managed independently. .sp .LP Default thresholds for components of automatically power managed devices are computed by the Power Management framework based on the system idleness threshold. By default, all components of the device are powered off if they have all been idle for the system's idleness threshold. The default system idleness threshold is determined by the applicable United States Environmental Protection Agency's (EPA) \fIEnergy Star Memorandum of Understanding\fR. See the \fBNOTES\fR section of this manual page for more information. .sp .LP To set the system idleness \fIthreshold\fR, use one of the following entries: .sp .in +2 .nf system-threshold \fIthreshold\fR .fi .in -2 .sp .in +2 .nf system-threshold \fBalways-on\fR .fi .in -2 .sp .LP where \fIthreshold\fR is the value of the system idleness threshold in hours, minutes or seconds as indicated by a trailing \fBh\fR, \fBm\fR or \fBs\fR (defaulting to seconds if only a number is given). If \fBalways-on\fR is specified, then by default, all devices are left at full power. .sp .LP The \fBsystem-threshold\fR entry is applicable to CPU Power Management only when CPU Power Management has been configured to operate in poll-mode, which is expressed through the \fBcpupm\fR keyword. .sp .LP If a system has power manageable CPUs, these can be managed independently of the system idleness threshold by using one of the following entries: .sp .in +2 .nf cpu-threshold \fIthreshold\fR .fi .in -2 .sp .in +2 .nf cpu-threshold \fBalways-on\fR .fi .in -2 .sp .LP where \fIthreshold\fR is the value of the CPU idleness threshold in hours, minutes or seconds as indicated by a trailing \fBh\fR, \fBm\fR or \fBs\fR (defaulting to seconds if only a number is given). If \fBalways-on\fR is specified, then by default, all CPUs are left at full power. .sp .LP The \fBcpu-threshold\fR keyword is used only when CPU Power Management has been configured to operate in poll-mode, which is expressed through the \fBcpupm\fR keyword. .sp .LP If no \fBcpu-threshold\fR entry is specified, then the system idleness threshold is used. .sp .LP To override the default device component thresholds assigned by the Power Management framework, a \fBdevice-thresholds\fR entry can be used. A \fBdevice-thresholds\fR entry sets thresholds for a specific automatically power-managed device or disables automatic Power Management for the specific device. .sp .LP A \fBdevice-thresholds\fR entry has the form: .sp .in +2 .nf device-thresholds \fIphys_path\fR \fI(threshold ...) ...\fR .fi .in -2 .sp .LP or .sp .in +2 .nf device-thresholds \fIphys_path\fR \fIthreshold\fR .fi .in -2 .sp .LP or .sp .in +2 .nf device-thresholds \fIphys_path\fR \fBalways-on\fR .fi .in -2 .sp .LP where \fIphys_path\fR specifies the physical path (\fBlibdevinfo\fR(3LIB)) of a specific device. For example, \fB/pci@8,600000/scsi@4/ssd@w210000203700c3ee,0\fR specifies the physical path of a disk. A symbolic link into the \fB/devices\fR tree, for example \fB/dev/dsk/c1t1d0s0\fR, is also accepted. The thresholds apply (or keeping the device always on applies) to the specific device only. .sp .LP In the first form above, each \fIthreshold\fR value represents the number of hours, minutes or seconds, depending on a trailing \fBh\fR, \fBm\fR or \fBs\fR with a default to seconds, to spend idle at the corresponding power level before power is reduced to the next lower level of that component. Parentheses are used to group thresholds per component, with the first (leftmost) group being applied to component \fB0\fR, the next to component \fB1\fR, and the like. Within a group, the last (rightmost) number represents the time to be idle in the highest power level of the component before going to the next-to-highest level, while the first (leftmost) number represents the time to be idle in the next-to-lowest power level before going to the lowest power level. .sp .LP If the number of groups does not match the number of components exported by the device (by means of \fBpm-components\fR(9P) property), or the number of thresholds in a group is not one less than the number of power levels the corresponding component supports, then an error message is printed and the entry is ignored. .sp .LP For example, assume a device called \fBxfb\fR exports the components \fBFrame Buffer\fR and \fBMonitor\fR. Component \fBFrame Buffer\fR has two power levels: \fBOff\fR and \fBOn\fR. Component \fBMonitor\fR has four power levels: \fBOff\fR, \fBSuspend, Standby\fR, and \fBOn\fR. .sp .LP The following \fBdevice-thresholds\fR entry: .sp .in +2 .nf device-thresholds \fI/pci@f0000/xfb@0 (0) (3m 5m 15m)\fR .fi .in -2 .sp .LP would set the \fIthreshold\fR time for the \fBMonitor\fR component of the specific \fBxfb\fR card to go from \fBOn\fR to \fBStandby in\fR 15 minutes, the \fIthreshold\fR for \fBMonitor\fR to go from \fBStandby\fR to \fBSuspend\fR in 5 minutes, and the \fIthreshold\fR for \fBMonitor\fR to go from \fBSuspend\fR to \fBOff\fR in 3 minutes. The threshold for \fBFrame Buffer\fR to go from \fBOn\fR to \fBOff\fR is 0 seconds. .sp .LP In the second form above, where a single threshold value is specified without parentheses, the threshold value represents a maximum overall time within which the entire device should be powered down if it is idle. Because the system does not know about any internal dependencies there can be among a device's components, the device can actually be powered down sooner than the specified \fIthreshold\fR, but does take longer than the specified \fIthreshold\fR, provided that all device components are idle. .sp .LP In the third form above, all components of the device are left at full power. .sp .LP Device Power Management entries are only effective if there is no user process controlling the device directly. For example, X Windows systems directly control frame buffers. The entries in the \fBpower.conf\fR file are effective only when X Windows is not running. .sp .LP Dependencies among devices can also be defined. A device depends upon another if none of its components might have their power levels reduced unless all components of the other device are powered off. A dependency can be indicated by an entry of the form: .sp .in +2 .nf device-dependency \fIdependent_phys_path phys_path [ phys_path ... ]\fR .fi .in -2 .sp .LP where \fIdependent_phys_path\fR is the path name (as above) of the device that is kept up by the others, and the \fIphys_path\fR entries specify the devices that keep it up. A symbolic link into the \fB/devices\fR tree, such as \fB/dev/fb\fR, is also accepted. This entry is needed only for logical dependents for the device. A logical dependent is a device that is not physically connected to the power managed device (for example, the display and the keyboard). Physical dependents are automatically considered and need not be included. .sp .LP In addition to listing dependents by physical path, an arbitrary group of devices can be made dependent upon another device by specifying a property dependency using the following syntax: .sp .in +2 .nf device-dependency-property \fIproperty\fR \fIphys_path\fR [\fIphys_path\fR ...] .fi .in -2 .sp .sp .LP where each device that exports the property \fIproperty\fR is kept up by the devices named by \fIphys_path\fR(s). A symbolic link into the \fB/devices\fR tree (such as \fB/dev/fb\fR) is accepted as well as a pathname for \fIphys_path\fR. .sp .LP For example, the following entry ensures that every device that exports the boolean property named \fBremovable-media\fR is kept up when the console framebuffer is up. See \fBremovable-media\fR(9P). .sp .in +2 .nf # This entry keeps removable media from being powered down unless the # console framebuffer and monitor are powered down # (See removable-media(9P)) # device-dependency-property removable-media /dev/fb .fi .in -2 .sp .LP An \fBautopm\fR entry can be used to enable or disable automatic device Power Management on a system-wide basis. The format of the \fBautopm\fR entry is: .sp .in +2 .nf autopm \fIbehavior\fR .fi .in -2 .sp .LP Acceptable behavior values are described as follows: .sp .ne 2 .na \fB\fBdefault\fR\fR .ad .RS 11n The behavior of the system depends upon its model. Desktop models that fall under the United States Environmental Protection Agency's \fIEnergy Star Memorandum of Understanding #3\fR have automatic device Power Management enabled, and all others do not. See the \fBNOTES\fR section of this manual page for more information. .RE .sp .ne 2 .na \fB\fBenable\fR\fR .ad .RS 11n Automatic device Power Management is started when this entry is encountered. .RE .sp .ne 2 .na \fB\fBdisable\fR\fR .ad .RS 11n Automatic device Power Management is stopped when this entry is encountered. .RE .sp .LP A \fBcpupm\fR entry can be used to enable or disable Power Management of CPUs on a system-wide basis, independent of \fBautopm\fR. The format of the \fBcpupm\fR entry is: .sp .in +2 .nf cpupm \fIbehavior\fR .fi .in -2 .sp .LP Acceptable behavior values and their meanings are : .sp .ne 2 .na \fB\fBenable\fR\fR .ad .RS 11n CPU Power Management is started when this entry is encountered. .sp Where the behavior is \fBenable\fR, an optional \fImode\fR argument can be specified: .sp .in +2 .nf cpupm enable \fImode\fR .fi .in -2 Acceptable \fImode\fR values and their meanings are: .sp .ne 2 .na \fB\fBevent-mode\fR\fR .ad .RS 14n CPU power state transitions is driven by thread scheduler/dispatcher events. The \fBcpu-threshold\fR, and \fBsystem-threshold\fR keywords are not used for CPUs in this mode. .RE .sp .ne 2 .na \fB\fBpoll-mode\fR\fR .ad .RS 14n The Power Management framework polls the idleness of the system's CPUs, and manages their power once idle for the period of time specified by either the \fBsystem-threshold\fR or \fBcpu-threshold\fR. .RE .RE .sp .ne 2 .na \fB\fBdisable\fR\fR .ad .RS 11n CPU Power Management is stopped when this entry is encountered. .RE .sp .LP If supported by the platform, a \fBcpu_deep_idle\fR entry can be used to enable or disable automatic use of power saving cpu idle states. The format of the \fBcpu_deep_idle\fR entry is: .sp .in +2 .nf \fBcpu_deep_idle\fR \fIbehavior\fR .fi .in -2 .sp .sp .LP Acceptable values for \fIbehavior\fR are: .sp .ne 2 .na \fB\fBdefault\fR\fR .ad .RS 11n Advanced cpu idle power saving features are enabled on hardware which supports it. On X86 systems this can translate to the use of ACPI C-States beyond C1. .RE .sp .ne 2 .na \fB\fBenable\fR\fR .ad .RS 11n Enables the system to automatically use idle cpu power saving features. .RE .sp .ne 2 .na \fB\fBdisable\fR\fR .ad .RS 11n The system does not automatically use idle cpu power saving features. This option can be used when maximum performance is required at the expense of power. .RE .sp .ne 2 .na \fB\fBabsent\fR\fR .ad .RS 11n It the \fBcpu_deep_idle\fR keyword is absent from \fBpower.conf\fR the behavior is the same as the default case. .RE .sp .LP Once every device is at its lowest possible power state, additional power savings can be obtained by putting the system into a sleep state (if the platform hardware is capable of doing so). .SS "S3 Support" Because of reliability problems encountered in BIOS implementations of X86 systems not produced by Sun Microsystems, by default, only X86 workstation products produced by Sun are considered to support S3 (suspend to RAM). To override this default, an S3-support entry (of the format S3-support \fBbehavior\fR) can be used to indicate if the system supports S3. .sp .LP Acceptable behavior values are: .sp .ne 2 .na \fBenable\fR .ad .RS 11n The system supports entry into S3 state. If the BIOS of a system enabled using an \fBS3-support enable\fR entry does not support entry into S3, the attempt fails and the system returns to normal operation. If support for S3 in the BIOS of a system enabled via an S3-support entry contains bugs, the system can be unable to enter S3 or resume successfully, so use this entry with caution. .RE .sp .ne 2 .na \fBdisable\fR .ad .RS 11n The system does not support entry into S3 state. .RE .SS "Automatic Entry Into S3" If supported by your platform, an autoS3 entry can be used to enable or disable automatic entry into the S3 state. When in the S3 state, the power button, keyboard and mouse activity or network traffic (depending upon the capabilities of the platform hardware) can wake the system, returning it to the state it was in upon entry to the S3 state. If the platform doesn't support S3, the entry has no effect. .sp .LP The format of the autoS3 entry is autoS3 \fBbehavior\fR. .sp .LP Acceptable behavior values are: .sp .ne 2 .na \fBdefault\fR .ad .RS 11n System behavior depends upon model. Sun X86 desktop and workstation models that fall under the United States Environmental Protection Agency's \fIEnergy Star Memorandum of Understanding #3\fR have automatic entry into the S3 state enabled. Non-Sun systems do not. See \fBNOTES\fR for more information. .RE .sp .ne 2 .na \fBenable\fR .ad .RS 11n Enables the system to automatically enter the S3 state if autopm is enabled and every device is at its lowest power state. .RE .sp .ne 2 .na \fBdisable\fR .ad .RS 11n The system does not automatically enter the S3 state. .RE .SS "System Power Management" The system Power Management entries control Power Management of the entire system using the suspend-resume feature. When the system is suspended, the complete current state is saved on the disk before power is removed. On reboot, the system automatically starts a resume operation and the system is restored to the state it was in prior to suspend. .sp .LP The system can be configured to do an automatic shutdown (autoshutdown) using the suspend-resume feature by an entry of the following form: .sp .in +2 .nf autoshutdown \fIidle_time\fR \fIstart_time\fR \fIfinish_time\fR \fIbehavior\fR .fi .in -2 .sp .LP \fIidle_time\fR specifies the time in minutes that system must have been idle before it is automatically shutdown. System idleness is determined by the inactivity of the system and can be configured as discussed below. .sp .LP \fIstart_time\fR and \fIfinish_time\fR (each in \fBhh:mm\fR) specify the time period during which the system can be automatically shutdown. These times are measured from the start of the day (12:00 a.m.). If the \fIfinish_time\fR is less than or equal to the \fIstart_time\fR, the period span from midnight to the \fIfinish_time\fR and from the \fIstart_time\fR to the following midnight. To specify continuous operation, the \fIfinish_time\fR can be set equal to the \fIstart_time\fR. .sp .LP Acceptable behavior values are described as follows: .sp .ne 2 .na \fB\fBshutdown\fR\fR .ad .RS 16n The system is shut down automatically when it has been idle for the number of minutes specified in the \fIidle_time\fR value and the time of day falls between the \fIstart_time\fR and \fIfinish_time\fR values. .RE .sp .ne 2 .na \fB\fBnoshutdown\fR\fR .ad .RS 16n The system is never shut down automatically. .RE .sp .ne 2 .na \fB\fBautowakeup\fR\fR .ad .RS 16n If the hardware has the capability to do \fBautowakeup\fR, the system is shut down as if the value were \fBshutdown\fR and the system is restarted automatically the next time the time of day equals \fIfinish_time\fR. .RE .sp .ne 2 .na \fB\fBdefault\fR\fR .ad .RS 16n The behavior of the system depends upon its model. Desktop models that fall under the United States Environmental Protection Agency's \fIEnergy Star Memorandum of Understanding #2\fR have automatic \fBshutdown\fR enabled, as if \fIbehavior\fR field were set to \fBshutdown\fR, and all others do not. See \fBNOTES\fR. .RE .sp .ne 2 .na \fB\fBunconfigured\fR\fR .ad .RS 16n The system does not be shut down automatically. If the system has just been installed or upgraded, the value of this field is changed upon the next reboot. .RE .sp .LP You can use the following format to configure the system's notion of idleness: .sp .LP \fBidleness_parameter\fR \fIvalue\fR .sp .LP Where \fBidleness_parameter\fR can be: .sp .ne 2 .na \fB\fBttychars\fR\fR .ad .RS 15n If the \fBidleness_parameter\fR is \fBttychars\fR, the \fIvalue\fR field is interpreted as the maximum number of tty characters that can pass through the \fBldterm\fR module while still allowing the system to be considered idle. This value defaults to \fB0\fR if no entry is provided. .RE .sp .ne 2 .na \fB\fBloadaverage\fR\fR .ad .RS 15n If the \fBidleness_parameter\fR is \fBloadaverage\fR, the (floating point) \fIvalue\fR field is interpreted as the maximum load average that can be seen while still allowing the system to be considered idle. This value defaults to \fB0.04\fR if no entry is provided. .RE .sp .ne 2 .na \fB\fBdiskreads\fR\fR .ad .RS 15n If the \fBidleness_parameter\fR is \fBdiskreads\fR, the \fIvalue\fR field is interpreted as the maximum number of disk reads that can be perform by the system while still allowing the system to be considered idle. This value defaults to \fB0\fR if no entry is provided. .RE .sp .ne 2 .na \fB\fBnfsreqs\fR\fR .ad .RS 15n If the \fBidleness_parameter\fR is \fBnfsreqs\fR, the \fIvalue\fR field is interpreted as the maximum number of NFS requests that can be sent or received by the system while still allowing the system to be considered idle. Null requests, access requests, and \fBgetattr\fR requests are excluded from this count. This value defaults to \fB0\fR if no entry is provided. .RE .sp .ne 2 .na \fB\fBidlecheck\fR\fR .ad .RS 15n If the \fBidleness_parameter\fR is \fBidlecheck\fR, the \fIvalue\fR must be pathname of a program to be executed to determine if the system is idle. If \fBautoshutdown\fR is enabled and the console keyboard, mouse, tty, CPU (as indicated by load average), network (as measured by NFS requests) and disk (as measured by read activity) have been idle for the amount of time specified in the \fBautoshutdown\fR entry specified above, and the time of day falls between the start and finish times, then this program is executed to check for other idleness criteria. The \fIvalue\fR of the idle time specified in the above \fBautoshutdown\fR entry is passed to the program in the environment variable \fBPM_IDLETIME\fR. The process must terminate with an exit code that represents the number of minutes that the process considers the system to have been idle. .sp There is no default \fIidlecheck\fR entry. .RE .sp .LP When the system is suspended, the current system state is saved on the disk in a statefile. An entry of following form can be used to change the location of statefile: .sp .in +2 .nf \fBstatefile\fR \fIpathname\fR .fi .in -2 .sp .LP where \fIpathname\fR identifies a block special file, for example, \fB/dev/dsk/c1t0d0s2\fR, or is the absolute pathname of a local \fBufs\fR file. If the pathname specifies a block special file, it can be a symbolic link as long as it does not have a file system mounted on it. If pathname specifies a local ufs file, it cannot be a symbolic link. If the file does not exist, it is created during the \fBsuspend\fR operation. All the directory components of the path must already exist. .sp .LP The actual size of statefile depends on a variety of factors, including the size of system memory, the number of loadable drivers/modules in use, the number and type of processes running, and the amount of user memory that has been locked down. It is recommended that statefile be placed on a file system with at least 10 Mbytes of free space. In case there is no statefile entry at boot time, an appropriate new entry is automatically created by the system. .SH EXAMPLES \fBExample 1 \fRDisabling Automatic Device Power Management .sp .LP To disable automatic device Power Management, change the following line in the \fB/etc/power.conf\fR file .sp .in +2 .nf autopm default .fi .in -2 .sp .LP to read: .sp .in +2 .nf autopm disable .fi .in -2 .sp .LP Then run \fBpmconfig\fR or reboot. See \fBpmconfig\fR(8) for more information. .SH ATTRIBUTES See \fBattributes\fR(7) for descriptions of the following attributes: .sp .sp .TS box; c | c l | l . ATTRIBUTE TYPE ATTRIBUTE VALUE _ Interface stability Committed .TE .SH SEE ALSO .BR uadmin (2), .BR libdevinfo (3LIB), .BR cpr (4), .BR pm (4D), .BR ldterm (4M), .BR attributes (7), .BR pmconfig (8), .BR powerd (8), .BR pm-components (9P), .BR removable-media (9P) .sp .LP \fIWriting Device Drivers\fR .SH NOTES SPARC desktop models first shipped after October 1, 1995 and before July 1, 1999 comply with the United States Environmental Protection Agency's \fIEnergy Star Memorandum of Understanding #2\fR guidelines and have \fBautoshutdown\fR enabled by default after 30 minutes of system idleness. This is achieved by \fBdefault\fR keyword of \fBautoshutdown\fR entry behave as \fBshutdown\fR for these machines. The user is prompted to confirm this default behavior at system installation reboot. .sp .LP SPARC desktop models first shipped after July 1, 1999 comply with the United States Environmental Protection Agency's \fIEnergy Star Memorandum of Understanding #3\fR guidelines and have \fBautoshutdown\fR disabled by default, with \fBautopm\fR enabled after 30 minutes of idleness. This is achieved by interpreting default keyword of \fBautopm\fR entry behavior as \fBenabled\fR for these machines. User is not prompted to confirm this default behavior. .sp .LP To determine the version of the EPA's \fIEnergy Star Memorandum\fR applicable to your machine, use: .sp .in +2 .nf prtconf -pv | grep -i energystar .fi .in -2 .sp .LP Absence of a property indicates no Energy Star guidelines are applicable to your machine. .sp .LP System Power Management (suspend-resume) is currently supported only on a limited set of hardware platforms. .sp .LP Sun X86 desktop models first shipped after July 1, 1999 fall within United States Environmental Protection Agency's \fIEnergy Star Memorandum of Understanding #3\fR guidelines and have autopm and autoS3 enabled by default, with entry into S3 after 30 minutes of idleness. This is achieved by interpreting the default keyword of the autopm and autoS3 behaviors as enabled for these machines. You are not prompted to confirm the default behavior. On all other X86 systems, the autopm and autoS3 default keywords are interpreted as \fBdisable\fR.