Suspend: Testing facility (rev. 2)
Introduce sysfs attribute /sys/power/pm_test allowing one to test the suspend core code. Namely, writing one of the strings: freezer devices platform processors core to this file causes the suspend code to work in one of the test modes defined as follows: freezer - test the freezing of processes devices - test the freezing of processes and suspending of devices platform - test the freezing of processes, suspending of devices and platform global control methods(*) processors - test the freezing of processes, suspending of devices, platform global control methods and the disabling of nonboot CPUs core - test the freezing of processes, suspending of devices, platform global control methods, the disabling of nonboot CPUs and suspending of platform/system devices (*) These are ACPI global control methods on ACPI systems Then, if a suspend is started by normal means, the suspend core will perform its normal operations up to the point indicated by given test level. Next, it will wait for 5 seconds and carry out the resume operations needed to transition the system back to the fully functional state. Writing "none" to /sys/power/pm_test turns the testing off. When open for reading, /sys/power/pm_test contains a space-separated list of all available tests (including "none" that represents the normal functionality) in which the current test level is indicated by square brackets. Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl> Acked-by: Pavel Machek <pavel@ucw.cz> Signed-off-by: Len Brown <len.brown@intel.com>
This commit is contained in:
committed by
Len Brown
parent
c3e94d899c
commit
0e7d56e3d9
@ -188,3 +188,21 @@ int restore_highmem(void);
|
||||
static inline unsigned int count_highmem_pages(void) { return 0; }
|
||||
static inline int restore_highmem(void) { return 0; }
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Suspend test levels
|
||||
*/
|
||||
enum {
|
||||
/* keep first */
|
||||
TEST_NONE,
|
||||
TEST_CORE,
|
||||
TEST_CPUS,
|
||||
TEST_PLATFORM,
|
||||
TEST_DEVICES,
|
||||
TEST_FREEZER,
|
||||
/* keep last */
|
||||
__TEST_AFTER_LAST
|
||||
};
|
||||
|
||||
#define TEST_FIRST TEST_NONE
|
||||
#define TEST_MAX (__TEST_AFTER_LAST - 1)
|
||||
|
Reference in New Issue
Block a user