[PATCH] Remove process freezer from suspend to RAM pathway



Suspend to RAM on a machine with / on a fuse filesystem turns out to be
a screaming nightmare - either the suspend fails because syslog (for
instance) can't be frozen, or the machine deadlocks for some other
reason I haven't tracked down. We could "fix" fuse, or alternatively we
could do what we do for suspend to RAM on other platforms (PPC and APM)
and just not use the freezer.

Signed-off-by: Matthew Garrett <mjg59@xxxxxxxxxxxxx>

diff --git a/kernel/power/main.c b/kernel/power/main.c
index 8812985..5f109d5 100644
--- a/kernel/power/main.c
+++ b/kernel/power/main.c
@@ -19,7 +19,6 @@
#include <linux/console.h>
#include <linux/cpu.h>
#include <linux/resume-trace.h>
-#include <linux/freezer.h>
#include <linux/vmstat.h>

#include "power.h"
@@ -81,11 +80,6 @@ static int suspend_prepare(suspend_state_t state)

pm_prepare_console();

- if (freeze_processes()) {
- error = -EAGAIN;
- goto Thaw;
- }
-
if ((free_pages = global_page_state(NR_FREE_PAGES))
< FREE_PAGE_NUMBER) {
pr_debug("PM: free some memory\n");
@@ -93,7 +87,7 @@ static int suspend_prepare(suspend_state_t state)
if (nr_free_pages() < FREE_PAGE_NUMBER) {
error = -ENOMEM;
printk(KERN_ERR "PM: No enough memory\n");
- goto Thaw;
+ goto Restore_console;
}
}

@@ -118,8 +112,7 @@ static int suspend_prepare(suspend_state_t state)
device_resume();
Resume_console:
resume_console();
- Thaw:
- thaw_processes();
+ Restore_console:
pm_restore_console();
return error;
}
@@ -170,7 +163,6 @@ static void suspend_finish(suspend_state_t state)
pm_finish(state);
device_resume();
resume_console();
- thaw_processes();
pm_restore_console();
}

--
Matthew Garrett | mjg59@xxxxxxxxxxxxx
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



Relevant Pages

  • Re: Fast Start-up
    ... If you can keep the RAM live, then why can't you just suspend? ... like a car battery, and nobody wants your device to accidentally drain that ... Faster processors generally boot faster. ...
    (microsoft.public.windowsce.embedded)
  • Re: Fast Start-up
    ... you could theoretically use information in RAM to make a decision on ... CE does not define the power of the board in suspend, ... Most of the boot time and resume time is in the OEM code. ...
    (microsoft.public.windowsce.embedded)
  • Re: Solved my problem, created another...
    ... in the BIOS there is a setting called "ACPI ... Suspend to RAM" It was disabled... ... power button, I get fans, and a constant HD LED. ...
    (alt.comp.periphs.mainboard.asus)
  • Re: [RFC][PATCH] swsusp: support creating bigger images
    ... userland tasks need not be copied before saving. ... However this means we can save 80% of RAM with the patch ... restore_active_inactive_listsonly does something if suspend fails ... LRU lists and back in a round robin fashion. ...
    (Linux-Kernel)
  • Re: suspend / hibernate nomenclature
    ... kernel is utterly consistent in its current usage. ... clearly suspend to RAM and not hibernate), ... suspent to RAM) and the panasonic and thinkpad drivers which use it ...
    (Linux-Kernel)