diff options
author | Len Brown <len.brown@intel.com> | 2015-07-31 12:46:17 -0400 |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2015-07-31 17:46:05 -0400 |
commit | 2fd77fff4b440c29b48c31db0ce2aec7d319959f (patch) | |
tree | fe1c131b86a1cefe66e2ed2b7641b8c8db78c757 /kernel/power/suspend.c | |
parent | 019d8817b1b064c2bacfbcf40fc68184438ad05a (diff) |
PM / suspend: make sync() on suspend-to-RAM build-time optional
The Linux kernel suspend path has traditionally invoked sys_sync()
before freezing user threads.
But sys_sync() can be expensive, and some user-space OS's do not want
the kernel to pay the cost of sys_sync() on every suspend -- preferring
invoke sync() from user-space if/when they want it.
So make sys_sync on suspend build-time optional.
The default is unchanged.
Signed-off-by: Len Brown <len.brown@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Diffstat (limited to 'kernel/power/suspend.c')
-rw-r--r-- | kernel/power/suspend.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/kernel/power/suspend.c b/kernel/power/suspend.c index 53266b729fd9..7e4cda4a8dd9 100644 --- a/kernel/power/suspend.c +++ b/kernel/power/suspend.c | |||
@@ -484,11 +484,13 @@ static int enter_state(suspend_state_t state) | |||
484 | if (state == PM_SUSPEND_FREEZE) | 484 | if (state == PM_SUSPEND_FREEZE) |
485 | freeze_begin(); | 485 | freeze_begin(); |
486 | 486 | ||
487 | #ifndef CONFIG_SUSPEND_SKIP_SYNC | ||
487 | trace_suspend_resume(TPS("sync_filesystems"), 0, true); | 488 | trace_suspend_resume(TPS("sync_filesystems"), 0, true); |
488 | printk(KERN_INFO "PM: Syncing filesystems ... "); | 489 | printk(KERN_INFO "PM: Syncing filesystems ... "); |
489 | sys_sync(); | 490 | sys_sync(); |
490 | printk("done.\n"); | 491 | printk("done.\n"); |
491 | trace_suspend_resume(TPS("sync_filesystems"), 0, false); | 492 | trace_suspend_resume(TPS("sync_filesystems"), 0, false); |
493 | #endif | ||
492 | 494 | ||
493 | pr_debug("PM: Preparing system for sleep (%s)\n", pm_states[state]); | 495 | pr_debug("PM: Preparing system for sleep (%s)\n", pm_states[state]); |
494 | error = suspend_prepare(state); | 496 | error = suspend_prepare(state); |