diff mbox series

[v2] PM: Use two lines for "Restarting..." / "done" messages

Message ID 20250411152632.2806038-1-kernel.org@pileofstuff.org
State New
Headers show
Series [v2] PM: Use two lines for "Restarting..." / "done" messages | expand

Commit Message

Andrew Sayers April 11, 2025, 3:25 p.m. UTC
Other messages are occasionally printed between these two, for example:

    [203104.106534] Restarting tasks ...
    [203104.106559] mei_hdcp 0000:00:16.0-b638ab7e-94e2-4ea2-a552-d1c54b627f04: bound 0000:00:02.0 (ops i915_hdcp_ops [i915])
    [203104.112354] done.

This seems to be a timing issue, seen in two of the eleven
hibernation exits in my current `dmesg` output.

When printed on its own, the "done" message has the default log level.
This makes the output of `dmesg --level=warn` quite misleading.

Add enough context for the "done" messages to make sense on their own,
and use the same log level for all messages.

Change the messages to "<event>..." / "Done <event>.", unlike a449dfbfc089
which uses "<event>..." / "<event> completed.".  Front-loading the unique
part of the message makes it easier to scan the log, and reduces ambiguity
for users who aren't confident in their English comprehension.

Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
Signed-off-by: Andrew Sayers <kernel.org@pileofstuff.org>
---
v1 -> v2: mentioned a449dfbfc089 in commit message (thanks Lucas De Marchi)

 kernel/power/process.c             | 8 ++++----
 tools/power/pm-graph/sleepgraph.py | 3 ++-
 2 files changed, 6 insertions(+), 5 deletions(-)

Comments

Rafael J. Wysocki April 14, 2025, 2:36 p.m. UTC | #1
On Fri, Apr 11, 2025 at 5:27 PM Andrew Sayers
<kernel.org@pileofstuff.org> wrote:
>
> Other messages are occasionally printed between these two, for example:
>
>     [203104.106534] Restarting tasks ...
>     [203104.106559] mei_hdcp 0000:00:16.0-b638ab7e-94e2-4ea2-a552-d1c54b627f04: bound 0000:00:02.0 (ops i915_hdcp_ops [i915])
>     [203104.112354] done.
>
> This seems to be a timing issue, seen in two of the eleven
> hibernation exits in my current `dmesg` output.
>
> When printed on its own, the "done" message has the default log level.
> This makes the output of `dmesg --level=warn` quite misleading.
>
> Add enough context for the "done" messages to make sense on their own,
> and use the same log level for all messages.
>
> Change the messages to "<event>..." / "Done <event>.", unlike a449dfbfc089
> which uses "<event>..." / "<event> completed.".  Front-loading the unique
> part of the message makes it easier to scan the log, and reduces ambiguity
> for users who aren't confident in their English comprehension.
>
> Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
> Signed-off-by: Andrew Sayers <kernel.org@pileofstuff.org>
> ---
> v1 -> v2: mentioned a449dfbfc089 in commit message (thanks Lucas De Marchi)
>
>  kernel/power/process.c             | 8 ++++----
>  tools/power/pm-graph/sleepgraph.py | 3 ++-
>  2 files changed, 6 insertions(+), 5 deletions(-)
>
> diff --git a/kernel/power/process.c b/kernel/power/process.c
> index 66ac067d9ae6..4c674282df03 100644
> --- a/kernel/power/process.c
> +++ b/kernel/power/process.c
> @@ -189,7 +189,7 @@ void thaw_processes(void)
>
>         oom_killer_enable();
>
> -       pr_info("Restarting tasks ... ");
> +       pr_info("Restarting tasks ...\n");
>
>         __usermodehelper_set_disable_depth(UMH_FREEZING);
>         thaw_workqueues();
> @@ -208,7 +208,7 @@ void thaw_processes(void)
>         usermodehelper_enable();
>
>         schedule();
> -       pr_cont("done.\n");
> +       pr_info("Done restarting tasks.\n");
>         trace_suspend_resume(TPS("thaw_processes"), 0, false);
>  }
>
> @@ -217,7 +217,7 @@ void thaw_kernel_threads(void)
>         struct task_struct *g, *p;
>
>         pm_nosig_freezing = false;
> -       pr_info("Restarting kernel threads ... ");
> +       pr_info("Restarting kernel threads ...\n");
>
>         thaw_workqueues();
>
> @@ -229,5 +229,5 @@ void thaw_kernel_threads(void)
>         read_unlock(&tasklist_lock);
>
>         schedule();
> -       pr_cont("done.\n");
> +       pr_info("Done restarting kernel threads.\n");
>  }
> diff --git a/tools/power/pm-graph/sleepgraph.py b/tools/power/pm-graph/sleepgraph.py
> index e2261f33a082..1555b51a7d55 100755
> --- a/tools/power/pm-graph/sleepgraph.py
> +++ b/tools/power/pm-graph/sleepgraph.py
> @@ -4017,7 +4017,8 @@ def parseKernelLog(data):
>                                                         'PM: early restore of devices complete after.*'],
>                 'resume_complete': ['PM: resume of devices complete after.*',
>                                                         'PM: restore of devices complete after.*'],
> -                   'post_resume': [r'.*Restarting tasks \.\.\..*'],
> +                   'post_resume': [r'.*Restarting tasks \.\.\..*',
> +                                                       'Done restarting tasks.*'],
>         }
>
>         # action table (expected events that occur and show up in dmesg)
> --

Applied as 6.16 material, thanks!
diff mbox series

Patch

diff --git a/kernel/power/process.c b/kernel/power/process.c
index 66ac067d9ae6..4c674282df03 100644
--- a/kernel/power/process.c
+++ b/kernel/power/process.c
@@ -189,7 +189,7 @@  void thaw_processes(void)
 
 	oom_killer_enable();
 
-	pr_info("Restarting tasks ... ");
+	pr_info("Restarting tasks ...\n");
 
 	__usermodehelper_set_disable_depth(UMH_FREEZING);
 	thaw_workqueues();
@@ -208,7 +208,7 @@  void thaw_processes(void)
 	usermodehelper_enable();
 
 	schedule();
-	pr_cont("done.\n");
+	pr_info("Done restarting tasks.\n");
 	trace_suspend_resume(TPS("thaw_processes"), 0, false);
 }
 
@@ -217,7 +217,7 @@  void thaw_kernel_threads(void)
 	struct task_struct *g, *p;
 
 	pm_nosig_freezing = false;
-	pr_info("Restarting kernel threads ... ");
+	pr_info("Restarting kernel threads ...\n");
 
 	thaw_workqueues();
 
@@ -229,5 +229,5 @@  void thaw_kernel_threads(void)
 	read_unlock(&tasklist_lock);
 
 	schedule();
-	pr_cont("done.\n");
+	pr_info("Done restarting kernel threads.\n");
 }
diff --git a/tools/power/pm-graph/sleepgraph.py b/tools/power/pm-graph/sleepgraph.py
index e2261f33a082..1555b51a7d55 100755
--- a/tools/power/pm-graph/sleepgraph.py
+++ b/tools/power/pm-graph/sleepgraph.py
@@ -4017,7 +4017,8 @@  def parseKernelLog(data):
 							'PM: early restore of devices complete after.*'],
 		'resume_complete': ['PM: resume of devices complete after.*',
 							'PM: restore of devices complete after.*'],
-		    'post_resume': [r'.*Restarting tasks \.\.\..*'],
+		    'post_resume': [r'.*Restarting tasks \.\.\..*',
+							'Done restarting tasks.*'],
 	}
 
 	# action table (expected events that occur and show up in dmesg)