2020-04-02 07:59:27

by Chen Yu

[permalink] [raw]
Subject: [PATCH][v3] PM / sleep: Add pm_debug_messages boot command control

Debug messages from the system suspend/hibernation infrastructure
is disabled by default, and can only be enabled after the system
has boot up via /sys/power/pm_debug_messages. This makes the hibernation
resume hard to track as it involves system boot up across hibernation.
There's no chance for software_resume() to track the resume process,
eg.

Turning on the pm_debug_messages during boot up by appending
'pm_debug_messages'.

Cc: "Rafael J. Wysocki" <[email protected]>
Cc: Len Brown <[email protected]>
Cc: Andy Shevchenko <[email protected]>
Cc: Randy Dunlap <[email protected]>
Signed-off-by: Chen Yu <[email protected]>
---
v2: According to Randy's suggestion, add the command line
option to Documentation/admin-guide/kernel-parameters.txt

v3: According to Rafael's suggestion, rename the boot command
to pm_debug_messages
---
Documentation/admin-guide/kernel-parameters.txt | 3 +++
kernel/power/main.c | 7 +++++++
2 files changed, 10 insertions(+)

diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
index ed73df5f1369..3fb9cbee8d28 100644
--- a/Documentation/admin-guide/kernel-parameters.txt
+++ b/Documentation/admin-guide/kernel-parameters.txt
@@ -3720,6 +3720,9 @@
Override pmtimer IOPort with a hex value.
e.g. pmtmr=0x508

+ pm_debug_messages [SUSPEND,KNL]
+ Enable suspend/resume debug messages during boot up.
+
pnp.debug=1 [PNP]
Enable PNP debug messages (depends on the
CONFIG_PNP_DEBUG_MESSAGES option). Change at run-time
diff --git a/kernel/power/main.c b/kernel/power/main.c
index 69b7a8aeca3b..40f86ec4ab30 100644
--- a/kernel/power/main.c
+++ b/kernel/power/main.c
@@ -535,6 +535,13 @@ static ssize_t pm_debug_messages_store(struct kobject *kobj,

power_attr(pm_debug_messages);

+static int __init pm_debug_messages_setup(char *str)
+{
+ pm_debug_messages_on = true;
+ return 1;
+}
+__setup("pm_debug_messages", pm_debug_messages_setup);
+
/**
* __pm_pr_dbg - Print a suspend debug message to the kernel log.
* @defer: Whether or not to use printk_deferred() to print the message.
--
2.17.1


2020-04-02 13:35:05

by Rafael J. Wysocki

[permalink] [raw]
Subject: Re: [PATCH][v3] PM / sleep: Add pm_debug_messages boot command control

On Thu, Apr 2, 2020 at 9:58 AM Chen Yu <[email protected]> wrote:
>
> Debug messages from the system suspend/hibernation infrastructure
> is disabled by default, and can only be enabled after the system
> has boot up via /sys/power/pm_debug_messages. This makes the hibernation
> resume hard to track as it involves system boot up across hibernation.
> There's no chance for software_resume() to track the resume process,
> eg.
>
> Turning on the pm_debug_messages during boot up by appending
> 'pm_debug_messages'.
>
> Cc: "Rafael J. Wysocki" <[email protected]>
> Cc: Len Brown <[email protected]>
> Cc: Andy Shevchenko <[email protected]>
> Cc: Randy Dunlap <[email protected]>
> Signed-off-by: Chen Yu <[email protected]>
> ---
> v2: According to Randy's suggestion, add the command line
> option to Documentation/admin-guide/kernel-parameters.txt
>
> v3: According to Rafael's suggestion, rename the boot command
> to pm_debug_messages
> ---
> Documentation/admin-guide/kernel-parameters.txt | 3 +++
> kernel/power/main.c | 7 +++++++
> 2 files changed, 10 insertions(+)
>
> diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
> index ed73df5f1369..3fb9cbee8d28 100644
> --- a/Documentation/admin-guide/kernel-parameters.txt
> +++ b/Documentation/admin-guide/kernel-parameters.txt
> @@ -3720,6 +3720,9 @@
> Override pmtimer IOPort with a hex value.
> e.g. pmtmr=0x508
>
> + pm_debug_messages [SUSPEND,KNL]
> + Enable suspend/resume debug messages during boot up.
> +
> pnp.debug=1 [PNP]
> Enable PNP debug messages (depends on the
> CONFIG_PNP_DEBUG_MESSAGES option). Change at run-time
> diff --git a/kernel/power/main.c b/kernel/power/main.c
> index 69b7a8aeca3b..40f86ec4ab30 100644
> --- a/kernel/power/main.c
> +++ b/kernel/power/main.c
> @@ -535,6 +535,13 @@ static ssize_t pm_debug_messages_store(struct kobject *kobj,
>
> power_attr(pm_debug_messages);
>
> +static int __init pm_debug_messages_setup(char *str)
> +{
> + pm_debug_messages_on = true;
> + return 1;
> +}
> +__setup("pm_debug_messages", pm_debug_messages_setup);
> +
> /**
> * __pm_pr_dbg - Print a suspend debug message to the kernel log.
> * @defer: Whether or not to use printk_deferred() to print the message.
> --

Applied (as 5.7-rc material) with modified subject and changelog, thanks!

2020-04-06 09:19:02

by Pavel Machek

[permalink] [raw]
Subject: Re: [PATCH][v3] PM / sleep: Add pm_debug_messages boot command control

Hi!

> > diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
> > index ed73df5f1369..3fb9cbee8d28 100644
> > --- a/Documentation/admin-guide/kernel-parameters.txt
> > +++ b/Documentation/admin-guide/kernel-parameters.txt
> > @@ -3720,6 +3720,9 @@
> > Override pmtimer IOPort with a hex value.
> > e.g. pmtmr=0x508
> >
> > + pm_debug_messages [SUSPEND,KNL]
> > + Enable suspend/resume debug messages during boot up.
> > +
> > pnp.debug=1 [PNP]
> > Enable PNP debug messages (depends on the
> > CONFIG_PNP_DEBUG_MESSAGES option). Change at run-time

> Applied (as 5.7-rc material) with modified subject and changelog,
thanks!

Please don't.

We have pnp.debug, i8042.debug, acpi.debug_*, lsm.debug... It makes
sense to do pm.debug... we want to have some consistency.

Thanks,
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html


Attachments:
(No filename) (1.13 kB)
signature.asc (201.00 B)
Download all attachments

2020-04-06 09:54:31

by Chen Yu

[permalink] [raw]
Subject: Re: [PATCH][v3] PM / sleep: Add pm_debug_messages boot command control

Hi Pavel,
thanks for review.
On Mon, Apr 06, 2020 at 11:18:13AM +0200, Pavel Machek wrote:
> Hi!
>
> > > diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
> > > index ed73df5f1369..3fb9cbee8d28 100644
> > > --- a/Documentation/admin-guide/kernel-parameters.txt
> > > +++ b/Documentation/admin-guide/kernel-parameters.txt
> > > @@ -3720,6 +3720,9 @@
> > > Override pmtimer IOPort with a hex value.
> > > e.g. pmtmr=0x508
> > >
> > > + pm_debug_messages [SUSPEND,KNL]
> > > + Enable suspend/resume debug messages during boot up.
> > > +
> > > pnp.debug=1 [PNP]
> > > Enable PNP debug messages (depends on the
> > > CONFIG_PNP_DEBUG_MESSAGES option). Change at run-time
>
> > Applied (as 5.7-rc material) with modified subject and changelog,
> thanks!
>
> Please don't.
>
> We have pnp.debug, i8042.debug, acpi.debug_*, lsm.debug... It makes
> sense to do pm.debug... we want to have some consistency.
>
We also have initcall_debug. It looks like the 'dot' indicates
that it is a module(or driver) parameter, and have multiple options
for user to choose from, but it looks like this is not the case for
pm_debug_messages.

Thanks,
Chenyu
> Thanks,
> Pavel
> --
> (english) http://www.livejournal.com/~pavelmachek
> (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html