[PATCH -mm 1/5] Freezer: Document relationship with memory shrinking



From: Rafael J. Wysocki <rjw@xxxxxxx>

One important reason to freeze tasks, which is that we don't want them to
allocate memory after freeing it for the hibernation image, has not been
documented. Fix it.

Signed-off-by: Rafael J. Wysocki <rjw@xxxxxxx>
Acked-by: Pavel Machek <pavel@xxxxxx>
---
Documentation/power/freezing-of-tasks.txt | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)

Index: linux-2.6.22-rc6-mm1/Documentation/power/freezing-of-tasks.txt
===================================================================
--- linux-2.6.22-rc6-mm1.orig/Documentation/power/freezing-of-tasks.txt 2007-07-11 20:48:04.000000000 +0200
+++ linux-2.6.22-rc6-mm1/Documentation/power/freezing-of-tasks.txt 2007-07-11 20:50:24.000000000 +0200
@@ -81,7 +81,16 @@ hibernation image has been created and b
The majority of these are user space processes, but if any of the kernel threads
may cause something like this to happen, they have to be freezable.

-2. The second reason is to prevent user space processes and some kernel threads
+2. Next, to create the hibernation image we need to free a sufficient amount of
+memory (approximately 50% of available RAM) and we need to do that before
+devices are deactivated, because we generally need them for swapping out. Then,
+after the memory for the image has been freed, we don't want tasks to allocate
+additional memory and we prevent them from doing that by freezing them earlier.
+[Of course, this also means that device drivers should not allocate substantial
+amounts of memory from their .suspend() callbacks before hibernation, but this
+is e separate issue.]
+
+3. The third reason is to prevent user space processes and some kernel threads
from interfering with the suspending and resuming of devices. A user space
process running on a second CPU while we are suspending devices may, for
example, be troublesome and without the freezing of tasks we would need some
@@ -111,7 +120,7 @@ frozen before the driver's .suspend() ca
thawed after the driver's .resume() callback has run, so it won't be accessing
the device while it's suspended.

-3. Another reason for freezing tasks is to prevent user space processes from
+4. Another reason for freezing tasks is to prevent user space processes from
realizing that hibernation (or suspend) operation takes place. Ideally, user
space processes should not notice that such a system-wide operation has occurred
and should continue running without any problems after the restore (or resume

-
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: Im building a new gaming PC, I was wondering if I could get some hints....
    ... The same memory modules will do. ... The reason I used the 4gb 2gb kit, is so that i wont waste money when ... because my motherboard only supports that kind... ... the 5 case fans, not fully needing to be annoying me all the time... ...
    (alt.comp.hardware.pc-homebuilt)
  • Re: Tuning Postgresql on FreeBSD 5.1
    ... Turn off the use of your memory disk for PG's temp files. ... Linux if things are slow on BSD. ... issues (if for no other reason than UFS+softupdates). ...
    (freebsd-performance)
  • Re: Terrabites of storage
    ... one half of the clock, ... peripherals, a couple K of memory, and the aforementioned flash block. ... which is another reason there aren't any 6502-derived chips ... [neep neep neep. ...
    (rec.arts.sf.composition)
  • Re: OT: Watch Ann Coulter Squirm
    ... reason, but doing so would make you sound like an idiot/liar." ... Your logical contortions aside, the statement ... the selling the war in Washington and to the American public, ... You're terribly confused (caused, no doubt, by the aforementioned memory ...
    (rec.gambling.poker)
  • Re: shared memory?
    ... > The kernel have access to all memory on the computer ... My concern was with user space processes writing to kernel ...
    (comp.os.linux.development.apps)