From 2e3484e48b199f6b371a98f2468efd685790ebdc Mon Sep 17 00:00:00 2001 From: Sultan Alsawaf <sultan@kerneltoast.com> Date: Tue, 3 May 2022 23:21:44 -0700 Subject: [PATCH] PM / freezer: Reduce freeze timeout to 1 second for Android Freezing processes on Android usually takes less than 100 ms, and if it takes longer than that to the point where the 20 second freeze timeout is reached, it's because the remaining processes to be frozen are deadlocked waiting for something from a process which is already frozen. There's no point in burning power trying to freeze for that long, so reduce the freeze timeout to a very generous 1 second for Android and don't let anything mess with it. Signed-off-by: Sultan Alsawaf <sultan@kerneltoast.com> --- kernel/power/main.c | 3 +++ kernel/power/process.c | 3 ++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/kernel/power/main.c b/kernel/power/main.c index d68bdf020..7a914615c 100755 --- a/kernel/power/main.c +++ b/kernel/power/main.c @@ -879,6 +879,9 @@ static ssize_t pm_freeze_timeout_store(struct kobject *kobj, { unsigned long val; + if (IS_ENABLED(CONFIG_ANDROID)) + return n; + if (kstrtoul(buf, 10, &val)) return -EINVAL; diff --git a/kernel/power/process.c b/kernel/power/process.c index aa6fa8697..acd38561b 100755 --- a/kernel/power/process.c +++ b/kernel/power/process.c @@ -29,7 +29,8 @@ /* * Timeout for stopping processes */ -unsigned int __read_mostly freeze_timeout_msecs = 20 * MSEC_PER_SEC; +unsigned int __read_mostly freeze_timeout_msecs = + IS_ENABLED(CONFIG_ANDROID) ? MSEC_PER_SEC : 20 * MSEC_PER_SEC; static int try_to_freeze_tasks(bool user_only) {