Messages in this thread Patch in this message | | | Subject | [PATCH 2/2] PM: CONFIG_SUSPEND_SKIP_SYNC sets default for, '/sys/power/sync_on_suspend' | From | Jonas Meurer <> | Date | Mon, 2 Dec 2019 18:07:43 +0100 |
| |
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@freesources.org> --- 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); -- 2.20.1
| |