Re: [PATCH v2 5/8] PM / sleep: Print timing information if debug is enabled

From: Joe Perches
Date: Mon Jun 12 2017 - 18:18:37 EST


On Mon, 2017-06-12 at 22:51 +0200, Rafael J. Wysocki wrote:
> From: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
>
> Avoid printing the device suspend/resume timing information if
> CONFIG_PM_DEBUG is not set to reduce the log noise level.
>
> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
> ---
> drivers/base/power/main.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> Index: linux-pm/drivers/base/power/main.c
> ===================================================================
> --- linux-pm.orig/drivers/base/power/main.c
> +++ linux-pm/drivers/base/power/main.c
> @@ -417,6 +417,7 @@ static void pm_dev_err(struct device *de
> dev_name(dev), pm_verb(state.event), info, error);
> }
>
> +#ifdef CONFIG_PM_DEBUG
> static void dpm_show_time(ktime_t starttime, pm_message_t state, char *info)
> {
> ktime_t calltime;
> @@ -433,6 +434,9 @@ static void dpm_show_time(ktime_t startt
> info ?: "", info ? " " : "", pm_verb(state.event),
> usecs / USEC_PER_MSEC, usecs % USEC_PER_MSEC);
> }
> +#else
> +static inline void dpm_show_time(ktime_t starttime, pm_message_t state, char *info) {}
> +#endif /* CONFIG_PM_DEBUG */
>
> static int dpm_run_callback(pm_callback_t cb, struct device *dev,
> pm_message_t state, char *info)
>

trivia:

This style of code can be reduced a few lines of code
using a single definition.

static type func(args...)
{
#ifdef CONFIG_<FOO>
[code ...]
#endif
}

and compilers will generate the same code for the
!defined CONFIG_<FOO> case.

This style can help avoid defects of updating one
function definition and not the other and only
compile testing the updated version.