|  | What:		/sys/power/ | 
|  | Date:		August 2006 | 
|  | Contact:	Rafael J. Wysocki <rjw@rjwysocki.net> | 
|  | Description: | 
|  | The /sys/power directory will contain files that will | 
|  | provide a unified interface to the power management | 
|  | subsystem. | 
|  |  | 
|  | What:		/sys/power/state | 
|  | Date:		November 2016 | 
|  | Contact:	Rafael J. Wysocki <rjw@rjwysocki.net> | 
|  | Description: | 
|  | The /sys/power/state file controls system sleep states. | 
|  | Reading from this file returns the available sleep state | 
|  | labels, which may be "mem" (suspend), "standby" (power-on | 
|  | suspend), "freeze" (suspend-to-idle) and "disk" (hibernation). | 
|  |  | 
|  | Writing one of the above strings to this file causes the system | 
|  | to transition into the corresponding state, if available. | 
|  |  | 
|  | See Documentation/admin-guide/pm/sleep-states.rst for more | 
|  | information. | 
|  |  | 
|  | What:		/sys/power/mem_sleep | 
|  | Date:		November 2016 | 
|  | Contact:	Rafael J. Wysocki <rjw@rjwysocki.net> | 
|  | Description: | 
|  | The /sys/power/mem_sleep file controls the operating mode of | 
|  | system suspend.  Reading from it returns the available modes | 
|  | as "s2idle" (always present), "shallow" and "deep" (present if | 
|  | supported).  The mode that will be used on subsequent attempts | 
|  | to suspend the system (by writing "mem" to the /sys/power/state | 
|  | file described above) is enclosed in square brackets. | 
|  |  | 
|  | Writing one of the above strings to this file causes the mode | 
|  | represented by it to be used on subsequent attempts to suspend | 
|  | the system. | 
|  |  | 
|  | See Documentation/admin-guide/pm/sleep-states.rst for more | 
|  | information. | 
|  |  | 
|  | What:		/sys/power/disk | 
|  | Date:		September 2006 | 
|  | Contact:	Rafael J. Wysocki <rjw@rjwysocki.net> | 
|  | Description: | 
|  | The /sys/power/disk file controls the operating mode of the | 
|  | suspend-to-disk mechanism.  Reading from this file returns | 
|  | the name of the method by which the system will be put to | 
|  | sleep on the next suspend.  There are four methods supported: | 
|  |  | 
|  | 'firmware' - means that the memory image will be saved to disk | 
|  | by some firmware, in which case we also assume that the | 
|  | firmware will handle the system suspend. | 
|  |  | 
|  | 'platform' - the memory image will be saved by the kernel and | 
|  | the system will be put to sleep by the platform driver (e.g. | 
|  | ACPI or other PM registers). | 
|  |  | 
|  | 'shutdown' - the memory image will be saved by the kernel and | 
|  | the system will be powered off. | 
|  |  | 
|  | 'reboot' - the memory image will be saved by the kernel and | 
|  | the system will be rebooted. | 
|  |  | 
|  | Additionally, /sys/power/disk can be used to turn on one of the | 
|  | two testing modes of the suspend-to-disk mechanism: 'testproc' | 
|  | or 'test'.  If the suspend-to-disk mechanism is in the | 
|  | 'testproc' mode, writing 'disk' to /sys/power/state will cause | 
|  | the kernel to disable nonboot CPUs and freeze tasks, wait for 5 | 
|  | seconds, unfreeze tasks and enable nonboot CPUs.  If it is in | 
|  | the 'test' mode, writing 'disk' to /sys/power/state will cause | 
|  | the kernel to disable nonboot CPUs and freeze tasks, shrink | 
|  | memory, suspend devices, wait for 5 seconds, resume devices, | 
|  | unfreeze tasks and enable nonboot CPUs.  Then, we are able to | 
|  | look in the log messages and work out, for example, which code | 
|  | is being slow and which device drivers are misbehaving. | 
|  |  | 
|  | The suspend-to-disk method may be chosen by writing to this | 
|  | file one of the accepted strings: | 
|  |  | 
|  | - 'firmware' | 
|  | - 'platform' | 
|  | - 'shutdown' | 
|  | - 'reboot' | 
|  | - 'testproc' | 
|  | - 'test' | 
|  |  | 
|  | It will only change to 'firmware' or 'platform' if the system | 
|  | supports that. | 
|  |  | 
|  | What:		/sys/power/image_size | 
|  | Date:		August 2006 | 
|  | Contact:	Rafael J. Wysocki <rjw@rjwysocki.net> | 
|  | Description: | 
|  | The /sys/power/image_size file controls the size of the image | 
|  | created by the suspend-to-disk mechanism.  It can be written a | 
|  | string representing a non-negative integer that will be used | 
|  | as an upper limit of the image size, in bytes.  The kernel's | 
|  | suspend-to-disk code will do its best to ensure the image size | 
|  | will not exceed this number.  However, if it turns out to be | 
|  | impossible, the kernel will try to suspend anyway using the | 
|  | smallest image possible.  In particular, if "0" is written to | 
|  | this file, the suspend image will be as small as possible. | 
|  |  | 
|  | Reading from this file will display the current image size | 
|  | limit, which is set to around 2/5 of available RAM by default. | 
|  |  | 
|  | What:		/sys/power/pm_trace | 
|  | Date:		August 2006 | 
|  | Contact:	Rafael J. Wysocki <rjw@rjwysocki.net> | 
|  | Description: | 
|  | The /sys/power/pm_trace file controls the code which saves the | 
|  | last PM event point in the RTC across reboots, so that you can | 
|  | debug a machine that just hangs during suspend (or more | 
|  | commonly, during resume).  Namely, the RTC is only used to save | 
|  | the last PM event point if this file contains '1'.  Initially | 
|  | it contains '0' which may be changed to '1' by writing a | 
|  | string representing a nonzero integer into it. | 
|  |  | 
|  | To use this debugging feature you should attempt to suspend | 
|  | the machine, then reboot it and run:: | 
|  |  | 
|  | dmesg -s 1000000 | grep 'hash matches' | 
|  |  | 
|  | If you do not get any matches (or they appear to be false | 
|  | positives), it is possible that the last PM event point | 
|  | referred to a device created by a loadable kernel module.  In | 
|  | this case cat /sys/power/pm_trace_dev_match (see below) after | 
|  | your system is started up and the kernel modules are loaded. | 
|  |  | 
|  | CAUTION: Using it will cause your machine's real-time (CMOS) | 
|  | clock to be set to a random invalid time after a resume. | 
|  |  | 
|  | What;		/sys/power/pm_trace_dev_match | 
|  | Date:		October 2010 | 
|  | Contact:	James Hogan <jhogan@kernel.org> | 
|  | Description: | 
|  | The /sys/power/pm_trace_dev_match file contains the name of the | 
|  | device associated with the last PM event point saved in the RTC | 
|  | across reboots when pm_trace has been used.  More precisely it | 
|  | contains the list of current devices (including those | 
|  | registered by loadable kernel modules since boot) which match | 
|  | the device hash in the RTC at boot, with a newline after each | 
|  | one. | 
|  |  | 
|  | The advantage of this file over the hash matches printed to the | 
|  | kernel log (see /sys/power/pm_trace), is that it includes | 
|  | devices created after boot by loadable kernel modules. | 
|  |  | 
|  | Due to the small hash size necessary to fit in the RTC, it is | 
|  | possible that more than one device matches the hash, in which | 
|  | case further investigation is required to determine which | 
|  | device is causing the problem.  Note that genuine RTC clock | 
|  | values (such as when pm_trace has not been used), can still | 
|  | match a device and output its name here. | 
|  |  | 
|  | What:		/sys/power/pm_async | 
|  | Date:		January 2009 | 
|  | Contact:	Rafael J. Wysocki <rjw@rjwysocki.net> | 
|  | Description: | 
|  | The /sys/power/pm_async file controls the switch allowing the | 
|  | user space to enable or disable asynchronous suspend and resume | 
|  | of devices.  If enabled, this feature will cause some device | 
|  | drivers' suspend and resume callbacks to be executed in parallel | 
|  | with each other and with the main suspend thread.  It is enabled | 
|  | if this file contains "1", which is the default.  It may be | 
|  | disabled by writing "0" to this file, in which case all devices | 
|  | will be suspended and resumed synchronously. | 
|  |  | 
|  | What:		/sys/power/wakeup_count | 
|  | Date:		July 2010 | 
|  | Contact:	Rafael J. Wysocki <rjw@rjwysocki.net> | 
|  | Description: | 
|  | The /sys/power/wakeup_count file allows user space to put the | 
|  | system into a sleep state while taking into account the | 
|  | concurrent arrival of wakeup events.  Reading from it returns | 
|  | the current number of registered wakeup events and it blocks if | 
|  | some wakeup events are being processed at the time the file is | 
|  | read from.  Writing to it will only succeed if the current | 
|  | number of wakeup events is equal to the written value and, if | 
|  | successful, will make the kernel abort a subsequent transition | 
|  | to a sleep state if any wakeup events are reported after the | 
|  | write has returned. | 
|  |  | 
|  | What:		/sys/power/reserved_size | 
|  | Date:		May 2011 | 
|  | Contact:	Rafael J. Wysocki <rjw@rjwysocki.net> | 
|  | Description: | 
|  | The /sys/power/reserved_size file allows user space to control | 
|  | the amount of memory reserved for allocations made by device | 
|  | drivers during the "device freeze" stage of hibernation.  It can | 
|  | be written a string representing a non-negative integer that | 
|  | will be used as the amount of memory to reserve for allocations | 
|  | made by device drivers' "freeze" callbacks, in bytes. | 
|  |  | 
|  | Reading from this file will display the current value, which is | 
|  | set to 1 MB by default. | 
|  |  | 
|  | What:		/sys/power/autosleep | 
|  | Date:		April 2012 | 
|  | Contact:	Rafael J. Wysocki <rjw@rjwysocki.net> | 
|  | Description: | 
|  | The /sys/power/autosleep file can be written one of the strings | 
|  | returned by reads from /sys/power/state.  If that happens, a | 
|  | work item attempting to trigger a transition of the system to | 
|  | the sleep state represented by that string is queued up.  This | 
|  | attempt will only succeed if there are no active wakeup sources | 
|  | in the system at that time.  After every execution, regardless | 
|  | of whether or not the attempt to put the system to sleep has | 
|  | succeeded, the work item requeues itself until user space | 
|  | writes "off" to /sys/power/autosleep. | 
|  |  | 
|  | Reading from this file causes the last string successfully | 
|  | written to it to be returned. | 
|  |  | 
|  | What:		/sys/power/wake_lock | 
|  | Date:		February 2012 | 
|  | Contact:	Rafael J. Wysocki <rjw@rjwysocki.net> | 
|  | Description: | 
|  | The /sys/power/wake_lock file allows user space to create | 
|  | wakeup source objects and activate them on demand (if one of | 
|  | those wakeup sources is active, reads from the | 
|  | /sys/power/wakeup_count file block or return false).  When a | 
|  | string without white space is written to /sys/power/wake_lock, | 
|  | it will be assumed to represent a wakeup source name.  If there | 
|  | is a wakeup source object with that name, it will be activated | 
|  | (unless active already).  Otherwise, a new wakeup source object | 
|  | will be registered, assigned the given name and activated. | 
|  | If a string written to /sys/power/wake_lock contains white | 
|  | space, the part of the string preceding the white space will be | 
|  | regarded as a wakeup source name and handled as descrived above. | 
|  | The other part of the string will be regarded as a timeout (in | 
|  | nanoseconds) such that the wakeup source will be automatically | 
|  | deactivated after it has expired.  The timeout, if present, is | 
|  | set regardless of the current state of the wakeup source object | 
|  | in question. | 
|  |  | 
|  | Reads from this file return a string consisting of the names of | 
|  | wakeup sources created with the help of it that are active at | 
|  | the moment, separated with spaces. | 
|  |  | 
|  |  | 
|  | What:		/sys/power/wake_unlock | 
|  | Date:		February 2012 | 
|  | Contact:	Rafael J. Wysocki <rjw@rjwysocki.net> | 
|  | Description: | 
|  | The /sys/power/wake_unlock file allows user space to deactivate | 
|  | wakeup sources created with the help of /sys/power/wake_lock. | 
|  | When a string is written to /sys/power/wake_unlock, it will be | 
|  | assumed to represent the name of a wakeup source to deactivate. | 
|  |  | 
|  | If a wakeup source object of that name exists and is active at | 
|  | the moment, it will be deactivated. | 
|  |  | 
|  | Reads from this file return a string consisting of the names of | 
|  | wakeup sources created with the help of /sys/power/wake_lock | 
|  | that are inactive at the moment, separated with spaces. | 
|  |  | 
|  | What:		/sys/power/pm_print_times | 
|  | Date:		May 2012 | 
|  | Contact:	Sameer Nanda <snanda@chromium.org> | 
|  | Description: | 
|  | The /sys/power/pm_print_times file allows user space to | 
|  | control whether the time taken by devices to suspend and | 
|  | resume is printed.  These prints are useful for hunting down | 
|  | devices that take too long to suspend or resume. | 
|  |  | 
|  | Writing a "1" enables this printing while writing a "0" | 
|  | disables it.  The default value is "0".  Reading from this file | 
|  | will display the current value. | 
|  |  | 
|  | What:		/sys/power/pm_wakeup_irq | 
|  | Date:		April 2015 | 
|  | Contact:	Alexandra Yates <alexandra.yates@linux.intel.org> | 
|  | Description: | 
|  | The /sys/power/pm_wakeup_irq file reports to user space the IRQ | 
|  | number of the first wakeup interrupt (that is, the first | 
|  | interrupt from an IRQ line armed for system wakeup) seen by the | 
|  | kernel during the most recent system suspend/resume cycle. | 
|  |  | 
|  | This output is useful for system wakeup diagnostics of spurious | 
|  | wakeup interrupts. | 
|  |  | 
|  | What:		/sys/power/pm_debug_messages | 
|  | Date:		July 2017 | 
|  | Contact:	Rafael J. Wysocki <rjw@rjwysocki.net> | 
|  | Description: | 
|  | The /sys/power/pm_debug_messages file controls the printing | 
|  | of debug messages from the system suspend/hiberbation | 
|  | infrastructure to the kernel log. | 
|  |  | 
|  | Writing a "1" to this file enables the debug messages and | 
|  | writing a "0" (default) to it disables them.  Reads from | 
|  | this file return the current value. | 
|  |  | 
|  | What:		/sys/power/resume_offset | 
|  | Date:		April 2018 | 
|  | Contact:	Mario Limonciello <mario.limonciello@outlook.com> | 
|  | Description: | 
|  | This file is used for telling the kernel an offset into a disk | 
|  | to use when hibernating the system such as with a swap file. | 
|  |  | 
|  | Reads from this file will display the current offset | 
|  | the kernel will be using on the next hibernation | 
|  | attempt. | 
|  |  | 
|  | Using this sysfs file will override any values that were | 
|  | set using the kernel command line for disk offset. | 
|  |  | 
|  | What:		/sys/power/suspend_stats | 
|  | Date:		July 2019 | 
|  | Contact:	Kalesh Singh <kaleshsingh96@gmail.com> | 
|  | Description: | 
|  | The /sys/power/suspend_stats directory contains suspend related | 
|  | statistics. | 
|  |  | 
|  | What:		/sys/power/suspend_stats/success | 
|  | Date:		July 2019 | 
|  | Contact:	Kalesh Singh <kaleshsingh96@gmail.com> | 
|  | Description: | 
|  | The /sys/power/suspend_stats/success file contains the number | 
|  | of times entering system sleep state succeeded. | 
|  |  | 
|  | What:		/sys/power/suspend_stats/fail | 
|  | Date:		July 2019 | 
|  | Contact:	Kalesh Singh <kaleshsingh96@gmail.com> | 
|  | Description: | 
|  | The /sys/power/suspend_stats/fail file contains the number | 
|  | of times entering system sleep state failed. | 
|  |  | 
|  | What:		/sys/power/suspend_stats/failed_freeze | 
|  | Date:		July 2019 | 
|  | Contact:	Kalesh Singh <kaleshsingh96@gmail.com> | 
|  | Description: | 
|  | The /sys/power/suspend_stats/failed_freeze file contains the | 
|  | number of times freezing processes failed. | 
|  |  | 
|  | What:		/sys/power/suspend_stats/failed_prepare | 
|  | Date:		July 2019 | 
|  | Contact:	Kalesh Singh <kaleshsingh96@gmail.com> | 
|  | Description: | 
|  | The /sys/power/suspend_stats/failed_prepare file contains the | 
|  | number of times preparing all non-sysdev devices for | 
|  | a system PM transition failed. | 
|  |  | 
|  | What:		/sys/power/suspend_stats/failed_resume | 
|  | Date:		July 2019 | 
|  | Contact:	Kalesh Singh <kaleshsingh96@gmail.com> | 
|  | Description: | 
|  | The /sys/power/suspend_stats/failed_resume file contains the | 
|  | number of times executing "resume" callbacks of | 
|  | non-sysdev devices failed. | 
|  |  | 
|  | What:		/sys/power/suspend_stats/failed_resume_early | 
|  | Date:		July 2019 | 
|  | Contact:	Kalesh Singh <kaleshsingh96@gmail.com> | 
|  | Description: | 
|  | The /sys/power/suspend_stats/failed_resume_early file contains | 
|  | the number of times executing "early resume" callbacks | 
|  | of devices failed. | 
|  |  | 
|  | What:		/sys/power/suspend_stats/failed_resume_noirq | 
|  | Date:		July 2019 | 
|  | Contact:	Kalesh Singh <kaleshsingh96@gmail.com> | 
|  | Description: | 
|  | The /sys/power/suspend_stats/failed_resume_noirq file contains | 
|  | the number of times executing "noirq resume" callbacks | 
|  | of devices failed. | 
|  |  | 
|  | What:		/sys/power/suspend_stats/failed_suspend | 
|  | Date:		July 2019 | 
|  | Contact:	Kalesh Singh <kaleshsingh96@gmail.com> | 
|  | Description: | 
|  | The /sys/power/suspend_stats/failed_suspend file contains | 
|  | the number of times executing "suspend" callbacks | 
|  | of all non-sysdev devices failed. | 
|  |  | 
|  | What:		/sys/power/suspend_stats/failed_suspend_late | 
|  | Date:		July 2019 | 
|  | Contact:	Kalesh Singh <kaleshsingh96@gmail.com> | 
|  | Description: | 
|  | The /sys/power/suspend_stats/failed_suspend_late file contains | 
|  | the number of times executing "late suspend" callbacks | 
|  | of all devices failed. | 
|  |  | 
|  | What:		/sys/power/suspend_stats/failed_suspend_noirq | 
|  | Date:		July 2019 | 
|  | Contact:	Kalesh Singh <kaleshsingh96@gmail.com> | 
|  | Description: | 
|  | The /sys/power/suspend_stats/failed_suspend_noirq file contains | 
|  | the number of times executing "noirq suspend" callbacks | 
|  | of all devices failed. | 
|  |  | 
|  | What:		/sys/power/suspend_stats/last_failed_dev | 
|  | Date:		July 2019 | 
|  | Contact:	Kalesh Singh <kaleshsingh96@gmail.com> | 
|  | Description: | 
|  | The /sys/power/suspend_stats/last_failed_dev file contains | 
|  | the last device for which a suspend/resume callback failed. | 
|  |  | 
|  | What:		/sys/power/suspend_stats/last_failed_errno | 
|  | Date:		July 2019 | 
|  | Contact:	Kalesh Singh <kaleshsingh96@gmail.com> | 
|  | Description: | 
|  | The /sys/power/suspend_stats/last_failed_errno file contains | 
|  | the errno of the last failed attempt at entering | 
|  | system sleep state. | 
|  |  | 
|  | What:		/sys/power/suspend_stats/last_failed_step | 
|  | Date:		July 2019 | 
|  | Contact:	Kalesh Singh <kaleshsingh96@gmail.com> | 
|  | Description: | 
|  | The /sys/power/suspend_stats/last_failed_step file contains | 
|  | the last failed step in the suspend/resume path. | 
|  |  | 
|  | What:		/sys/power/suspend_stats/last_hw_sleep | 
|  | Date:		June 2023 | 
|  | Contact:	Mario Limonciello <mario.limonciello@amd.com> | 
|  | Description: | 
|  | The /sys/power/suspend_stats/last_hw_sleep file | 
|  | contains the duration of time spent in a hardware sleep | 
|  | state in the most recent system suspend-resume cycle. | 
|  | This number is measured in microseconds. | 
|  |  | 
|  | What:		/sys/power/suspend_stats/total_hw_sleep | 
|  | Date:		June 2023 | 
|  | Contact:	Mario Limonciello <mario.limonciello@amd.com> | 
|  | Description: | 
|  | The /sys/power/suspend_stats/total_hw_sleep file | 
|  | contains the aggregate of time spent in a hardware sleep | 
|  | state since the kernel was booted. This number | 
|  | is measured in microseconds. | 
|  |  | 
|  | What:		/sys/power/suspend_stats/max_hw_sleep | 
|  | Date:		June 2023 | 
|  | Contact:	Mario Limonciello <mario.limonciello@amd.com> | 
|  | Description: | 
|  | The /sys/power/suspend_stats/max_hw_sleep file | 
|  | contains the maximum amount of time that the hardware can | 
|  | report for time spent in a hardware sleep state. When sleep | 
|  | cycles are longer than this time, the values for | 
|  | 'total_hw_sleep' and 'last_hw_sleep' may not be accurate. | 
|  | This number is measured in microseconds. | 
|  |  | 
|  | What:		/sys/power/sync_on_suspend | 
|  | Date:		October 2019 | 
|  | Contact:	Jonas Meurer <jonas@freesources.org> | 
|  | Description: | 
|  | This file controls whether or not the kernel will sync() | 
|  | filesystems during system suspend (after freezing user space | 
|  | and before suspending devices). | 
|  |  | 
|  | Writing a "1" to this file enables the sync() and writing a "0" | 
|  | disables it.  Reads from the file return the current value. | 
|  | The default is "1" if the build-time "SUSPEND_SKIP_SYNC" config | 
|  | flag is unset, or "0" otherwise. |