diff options
author | Brian Norris <computersforpeace@gmail.com> | 2015-02-23 00:16:49 -0500 |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2015-02-25 19:21:26 -0500 |
commit | 1d4a9c17d4d204a159139361e8d4db7f9f267879 (patch) | |
tree | a419a5a715a3506e7972b556591b252f3b6ee10b /Documentation | |
parent | c517d838eb7d07bbe9507871fab3931deccff539 (diff) |
PM / sleep: add configurable delay for pm_test
When CONFIG_PM_DEBUG=y, we provide a sysfs file (/sys/power/pm_test) for
selecting one of a few suspend test modes, where rather than entering a
full suspend state, the kernel will perform some subset of suspend
steps, wait 5 seconds, and then resume back to normal operation.
This mode is useful for (among other things) observing the state of the
system just before entering a sleep mode, for debugging or analysis
purposes. However, a constant 5 second wait is not sufficient for some
sorts of analysis; for example, on an SoC, one might want to use
external tools to probe the power states of various on-chip controllers
or clocks.
This patch turns this 5 second delay into a configurable module
parameter, so users can determine how long to wait in this
pseudo-suspend state before resuming the system.
Example (wait 30 seconds);
# echo 30 > /sys/module/suspend/parameters/pm_test_delay
# echo core > /sys/power/pm_test
# time echo mem > /sys/power/state
...
[ 17.583625] suspend debug: Waiting for 30 second(s).
...
real 0m30.381s
user 0m0.017s
sys 0m0.080s
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Acked-by: Pavel Machek <pavel@ucw.cz>
Reviewed-by: Kevin Cernekee <cernekee@chromium.org>
Acked-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/kernel-parameters.txt | 7 | ||||
-rw-r--r-- | Documentation/power/basic-pm-debugging.txt | 10 |
2 files changed, 13 insertions, 4 deletions
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt index bfcb1a62a7b4..8b1fa5e129ac 100644 --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt | |||
@@ -3462,6 +3462,13 @@ bytes respectively. Such letter suffixes can also be entirely omitted. | |||
3462 | improve throughput, but will also increase the | 3462 | improve throughput, but will also increase the |
3463 | amount of memory reserved for use by the client. | 3463 | amount of memory reserved for use by the client. |
3464 | 3464 | ||
3465 | suspend.pm_test_delay= | ||
3466 | [SUSPEND] | ||
3467 | Sets the number of seconds to remain in a suspend test | ||
3468 | mode before resuming the system (see | ||
3469 | /sys/power/pm_test). Only available when CONFIG_PM_DEBUG | ||
3470 | is set. Default value is 5. | ||
3471 | |||
3465 | swapaccount=[0|1] | 3472 | swapaccount=[0|1] |
3466 | [KNL] Enable accounting of swap in memory resource | 3473 | [KNL] Enable accounting of swap in memory resource |
3467 | controller if no parameter or 1 is given or disable | 3474 | controller if no parameter or 1 is given or disable |
diff --git a/Documentation/power/basic-pm-debugging.txt b/Documentation/power/basic-pm-debugging.txt index edeecd447d23..b96098ccfe69 100644 --- a/Documentation/power/basic-pm-debugging.txt +++ b/Documentation/power/basic-pm-debugging.txt | |||
@@ -75,12 +75,14 @@ you should do the following: | |||
75 | # echo platform > /sys/power/disk | 75 | # echo platform > /sys/power/disk |
76 | # echo disk > /sys/power/state | 76 | # echo disk > /sys/power/state |
77 | 77 | ||
78 | Then, the kernel will try to freeze processes, suspend devices, wait 5 seconds, | 78 | Then, the kernel will try to freeze processes, suspend devices, wait a few |
79 | resume devices and thaw processes. If "platform" is written to | 79 | seconds (5 by default, but configurable by the suspend.pm_test_delay module |
80 | parameter), resume devices and thaw processes. If "platform" is written to | ||
80 | /sys/power/pm_test , then after suspending devices the kernel will additionally | 81 | /sys/power/pm_test , then after suspending devices the kernel will additionally |
81 | invoke the global control methods (eg. ACPI global control methods) used to | 82 | invoke the global control methods (eg. ACPI global control methods) used to |
82 | prepare the platform firmware for hibernation. Next, it will wait 5 seconds and | 83 | prepare the platform firmware for hibernation. Next, it will wait a |
83 | invoke the platform (eg. ACPI) global methods used to cancel hibernation etc. | 84 | configurable number of seconds and invoke the platform (eg. ACPI) global |
85 | methods used to cancel hibernation etc. | ||
84 | 86 | ||
85 | Writing "none" to /sys/power/pm_test causes the kernel to switch to the normal | 87 | Writing "none" to /sys/power/pm_test causes the kernel to switch to the normal |
86 | hibernation/suspend operations. Also, when open for reading, /sys/power/pm_test | 88 | hibernation/suspend operations. Also, when open for reading, /sys/power/pm_test |