Messages in this thread | | | From | "Rafael J. Wysocki" <> | Subject | Re: [RFC][PATCH][EXPERIMENTAL] Make kernel threads nonfreezable by default | Date | Mon, 28 May 2007 20:11:10 +0200 |
| |
On Monday, 28 May 2007 12:33, Pavel Machek wrote: > Hi! > > > Index: linux-2.6.22-rc3/Documentation/power/kernel_threads.txt > > =================================================================== > > --- linux-2.6.22-rc3.orig/Documentation/power/kernel_threads.txt > > +++ linux-2.6.22-rc3/Documentation/power/kernel_threads.txt > > @@ -1,13 +1,22 @@ > > -KERNEL THREADS > > +The Freezer and Kernel Threads > > > > - > > -Freezer > > - > > -Upon entering a suspended state the system will freeze all > > -tasks. This is done by delivering pseudosignals. This affects > > -kernel threads, too. To successfully freeze a kernel thread > > -the thread has to check for the pseudosignal and enter the > > -refrigerator. Code to do this looks like this: > > +Before entering a system-wide suspend state as well as before creating a > > +hibernation snapshot image the system will freeze all tasks, which is done > > +by delivering fake signals. This affects kernel threads too, but they won't be > > +frozen unless they declare that they want to. For this purpose > > Well... and unless thread that does disk writes or DMA _wants_ to, you > have nice disk corruption... It should be pointed out that it is not > voluntary for those types of threads.
Well, that really depends.
I think the only thing that must not be written to disk is filesystem stuff. The other things (eg. writing directly to block devices etc.) doesn't hurt us.
Also, I think that DMA-ing while we're creating the image should be impossible due to devices being frozen at that point.
That said, I think we need to write some better freezer documentation ASAP.
Greetings, Rafael - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |