Freezer retry loops during suspend are often triggered by tasks entering
D-state (TASK_UNINTERRUPTIBLE), which cannot be frozen. This patch adds
a simple retry counter to freeze_processes() to help quantify how many
attempts were required before all tasks entered the frozen state. This
is useful for performance tuning and debugging unpredictable suspend
delays.
A new dmesg log is added for visibility:
freeze round: xx, tasks to freeze: xx
This message allows users to correlate freeze instability with system
state.
Signed-off-by: Zihuan Zhang <zhangzihuan@kylinos.cn>
---
kernel/power/process.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/kernel/power/process.c b/kernel/power/process.c
index 9d3cbde905b9..442d2ebba3ed 100644
--- a/kernel/power/process.c
+++ b/kernel/power/process.c
@@ -76,6 +76,8 @@ static int try_to_freeze_tasks(bool user_only)
if (user_only && !has_freezable_task)
continue;
+ pr_info("freeze round: %d, task to freeze: %d\n", round, todo);
+
if (!todo || time_after(jiffies, end_time))
break;
--
2.25.1