Re: [PATCH 2/2] PM: CONFIG_SUSPEND_SKIP_SYNC sets default for, '/sys/power/sync_on_suspend'

From: Rafael J. Wysocki
Date: Fri Dec 20 2019 - 04:35:22 EST


On Monday, December 2, 2019 6:07:43 PM CET Jonas Meurer wrote:
> Slightly change the behaviour of build-time switch CONFIG_SUSPEND_SKIP_SYNC:
> Make it configure the default for '/sys/power/sync_on_suspend', now that we
> have a run-time switch for it.
>
> Signed-off-by: Jonas Meurer <jonas@xxxxxxxxxxxxxxx>
> ---
> Documentation/ABI/testing/sysfs-power | 7 ++++---
> kernel/power/Kconfig | 5 ++++-
> kernel/power/main.c | 2 +-
> kernel/power/suspend.c | 2 +-
> 4 files changed, 10 insertions(+), 6 deletions(-)
>
> diff --git a/Documentation/ABI/testing/sysfs-power b/Documentation/ABI/testing/sysfs-power
> index f164a364e89a..783b3ce8eb06 100644
> --- a/Documentation/ABI/testing/sysfs-power
> +++ b/Documentation/ABI/testing/sysfs-power
> @@ -418,6 +418,7 @@ Description:
> aware that you have to take care of sync() yourself before
> suspending the system if you disable it here.
>
> - Writing a "1" (default) to this file enables the sync() and
> - writing a "0" disables it. Reads from the file return the
> - current value.
> + Writing a "1" to this file enables the sync() and writing a
> + "0" disables it. Reads from the file return the current value.
> + The default is "1" but can be configured with the build-time
> + config flag "SUSPEND_SKIP_SYNC".
> diff --git a/kernel/power/Kconfig b/kernel/power/Kconfig
> index d3667b4075c1..7cbfbeacd68a 100644
> --- a/kernel/power/Kconfig
> +++ b/kernel/power/Kconfig
> @@ -27,7 +27,10 @@ config SUSPEND_SKIP_SYNC
> Skip the kernel sys_sync() before freezing user processes.
> Some systems prefer not to pay this cost on every invocation
> of suspend, or they are content with invoking sync() from
> - user-space before invoking suspend. Say Y if that's your case.
> + user-space before invoking suspend. There's a run-time switch
> + at '/sys/power/sync_on_suspend' to configure this behaviour.
> + This setting changes the default for the run-tim switch. Say Y
> + to change the default to disable the kernel sys_sync().
>
> config HIBERNATE_CALLBACKS
> bool
> diff --git a/kernel/power/main.c b/kernel/power/main.c
> index 7d9d579a8e6f..69b7a8aeca3b 100644
> --- a/kernel/power/main.c
> +++ b/kernel/power/main.c
> @@ -197,7 +197,7 @@ power_attr(mem_sleep);
> * show() returns whether ksys_sync_helper() is invoked before suspend.
> * store() accepts 0 or 1. 0 disables ksys_sync_helper() and 1 enables it.
> */
> -bool sync_on_suspend_enabled = true;
> +bool sync_on_suspend_enabled = !IS_ENABLED(CONFIG_SUSPEND_SKIP_SYNC);
>
> static ssize_t sync_on_suspend_show(struct kobject *kobj,
> struct kobj_attribute *attr, char *buf)
> diff --git a/kernel/power/suspend.c b/kernel/power/suspend.c
> index 503d56419a69..2c47280fbfc7 100644
> --- a/kernel/power/suspend.c
> +++ b/kernel/power/suspend.c
> @@ -564,7 +564,7 @@ static int enter_state(suspend_state_t state)
> if (state == PM_SUSPEND_TO_IDLE)
> s2idle_begin();
>
> - if (!IS_ENABLED(CONFIG_SUSPEND_SKIP_SYNC) && sync_on_suspend_enabled) {
> + if (sync_on_suspend_enabled) {
> trace_suspend_resume(TPS("sync_filesystems"), 0, true);
> ksys_sync_helper();
> trace_suspend_resume(TPS("sync_filesystems"), 0, false);
>

I don't see much value in splitting the changes into two patches.
On the contrary, this patch is a logical part of the full change, so IMO
it should be folded into the [1/2].

Please do so and resubmit.

Thanks!