PM: hibernate: add configurable delay for pm_test

Turn the default 5 second test delay for hibernation into a
configurable module parameter, so users can determine how
long to wait in this pseudo-hibernate state before resuming
the system.

The configurable delay parameter has been added for suspend, so
add an analogous one for hibernation.

Example (wait 30 seconds);

  # echo 30 > /sys/module/hibernate/parameters/pm_test_delay
  # echo core > /sys/power/pm_test

Signed-off-by: Zihuan Zhang <zhangzihuan@kylinos.cn>
Reviewed-by: Randy Dunlap <rdunlap@infradead.org>
Link: https://patch.msgid.link/20250507063520.419635-1-zhangzihuan@kylinos.cn
[ rjw: Subject and changelog edits ]
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:
Zihuan Zhang 2025-05-07 14:35:20 +08:00 committed by Rafael J. Wysocki
parent f0050a3e21
commit 50c9bb30dc
2 changed files with 14 additions and 2 deletions

View File

@ -1831,6 +1831,13 @@
lz4: Select LZ4 compression algorithm to
compress/decompress hibernation image.
hibernate.pm_test_delay=
[HIBERNATION]
Sets the number of seconds to remain in a hibernation test
mode before resuming the system (see
/sys/power/pm_test). Only available when CONFIG_PM_DEBUG
is set. Default value is 5.
highmem=nn[KMG] [KNL,BOOT,EARLY] forces the highmem zone to have an exact
size of <nn>. This works even on boxes that have no
highmem otherwise. This also works to reduce highmem

View File

@ -133,10 +133,15 @@ bool system_entering_hibernation(void)
EXPORT_SYMBOL(system_entering_hibernation);
#ifdef CONFIG_PM_DEBUG
static unsigned int pm_test_delay = 5;
module_param(pm_test_delay, uint, 0644);
MODULE_PARM_DESC(pm_test_delay,
"Number of seconds to wait before resuming from hibernation test");
static void hibernation_debug_sleep(void)
{
pr_info("debug: Waiting for 5 seconds.\n");
mdelay(5000);
pr_info("hibernation debug: Waiting for %d second(s).\n",
pm_test_delay);
mdelay(pm_test_delay * 1000);
}
static int hibernation_test(int level)