Re: [PATCH] Revert "include/linux/suspend.h: Only show pm_pr_dbg messages at suspend/resume"

Rafael J. Wysocki
2024-04-22T14:46:08Z

On Mon, Apr 22, 2024 at 4:33 PM Mario Limonciello
<mario.limonciello@amd.com> wrote:
>
> On 4/22/2024 04:36, xiongxin wrote:
> > This reverts commit cdb8c100d8a4b4e31c829724e40b4fdf32977cce.
> >
> > In the suspend process, pm_pr_dbg() is called before setting
> > pm_suspend_target_state. As a result, this part of the log cannot be
> > output.
> >
> > pm_pr_dbg() also outputs debug logs for hibernate, but
> > pm_suspend_target_state is not set, resulting in hibernate debug logs
> > can only be output through dynamic debug, which is very inconvenient.
>
> As an alternative, how about exporting and renaming the variable
> in_suspend in kernel/power/hibernate.c and considering that to tell if
> the hibernate process is going on?
>
> Then it should work just the same as it does at suspend.

Well, this is not the only part that stopped working AFAICS. I'll
queue up the revert.

Thanks!

> >
> > Signed-off-by: xiongxin <xiongxin@kylinos.cn>
> >
> > diff --git a/include/linux/suspend.h b/include/linux/suspend.h
> > index da6ebca3ff77..415483b89b11 100644
> > --- a/include/linux/suspend.h
> > +++ b/include/linux/suspend.h
> > @@ -503,7 +503,6 @@ static inline void unlock_system_sleep(unsigned int flags) {}
> > #ifdef CONFIG_PM_SLEEP_DEBUG
> > extern bool pm_print_times_enabled;
> > extern bool pm_debug_messages_on;
> > -extern bool pm_debug_messages_should_print(void);
> > static inline int pm_dyn_debug_messages_on(void)
> > {
> > #ifdef CONFIG_DYNAMIC_DEBUG
> > @@ -517,14 +516,14 @@ static inline int pm_dyn_debug_messages_on(void)
> > #endif
> > #define __pm_pr_dbg(fmt, ...) \
> > do { \
> > - if (pm_debug_messages_should_print()) \
> > + if (pm_debug_messages_on) \
> > printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__); \
> > else if (pm_dyn_debug_messages_on()) \
> > pr_debug(fmt, ##__VA_ARGS__); \
> > } while (0)
> > #define __pm_deferred_pr_dbg(fmt, ...) \
> > do { \
> > - if (pm_debug_messages_should_print()) \
> > + if (pm_debug_messages_on) \
> > printk_deferred(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__); \
> > } while (0)
> > #else
> > @@ -542,8 +541,7 @@ static inline int pm_dyn_debug_messages_on(void)
> > /**
> > * pm_pr_dbg - print pm sleep debug messages
> > *
> > - * If pm_debug_messages_on is enabled and the system is entering/leaving
> > - * suspend, print message.
> > + * If pm_debug_messages_on is enabled, print message.
> > * If pm_debug_messages_on is disabled and CONFIG_DYNAMIC_DEBUG is enabled,
> > * print message only from instances explicitly enabled on dynamic debug's
> > * control.
> > diff --git a/kernel/power/main.c b/kernel/power/main.c
> > index a9e0693aaf69..aa754241aaa6 100644
> > --- a/kernel/power/main.c
> > +++ b/kernel/power/main.c
> > @@ -611,12 +611,6 @@ power_attr_ro(pm_wakeup_irq);
> >
> > bool pm_debug_messages_on __read_mostly;
> >
> > -bool pm_debug_messages_should_print(void)
> > -{
> > - return pm_debug_messages_on && pm_suspend_target_state != PM_SUSPEND_ON;
> > -}
> > -EXPORT_SYMBOL_GPL(pm_debug_messages_should_print);
> > -
> > static ssize_t pm_debug_messages_show(struct kobject *kobj,
> > struct kobj_attribute *attr, char *buf)
> > {
>