Messages in this thread | | | From | Elias Oltmanns <> | Subject | Re: freeze vs freezer | Date | Tue, 24 Jun 2008 10:08:17 +0200 |
| |
Henrique de Moraes Holschuh <hmh@hmh.eng.br> wrote: > On Mon, 23 Jun 2008, Pavel Machek wrote: >> (replying to *very* old mail). > >> >> >>>> We wait until they can continue. >> >>> >> >>> So if I have a process blocked on an unavilable NFS mount, I can't >> >>> suspend? >> >> >> >> That's correct, you can't. >> >> >> >> [And I know what you're going to say. ;-)] >> > >> > Why exactly does suspend/hibernation depend on "TASK_INTERRUPTIBLE" instead >> > of a zero preempt_count()? Really what we should do is just iterate over >> > all of the actual physical devices and tell each one "Block new IO requests >> > preemptably, finish pending DMA, put the hardware in low-power mode, and >> > prepare for suspend/hibernate". As long as each driver knows how to do >> > those simple things we can have an entirely consistent kernel image for >> > both suspend and for hibernation. >> >> Patch would be welcome, actually. It turns out blocking new >> IO-requests is not completely trivial.
Quite. But I'm not sure I see what this is all about yet. From the IDE and SCSI subsystems I remember that they block all I/O from higher levels once the suspend callbacks have been executed. I haven't made an effort to understand the freezer (or indeed anything related to hibernation) yet since I don't even use hibernation myself (only s2ram). Do you have any suggestion where to start reading up on things so I can get an idea what the issues are and what you would like IDE / SCSI / ... to do?
> > Is this the same thing the per-device IO-queue-freeze patches for >HDAPS also > need to do? If so, you may want to talk to Elias Oltmanns > <eo@nebensachen.de> about it. Added to CC.
Thanks for the heads up Henrique. Even though these issues seem to be related up to a certain degree, there probably are some important differences. When suspending a system, the emphasis is on leaving the system in a consistent state (think of journalled file systems), whereas disk shock protection is mainly concerned with stopping I/O as soon as possible. As yet, I cannot possibly say to what extend these two concepts can be reconciled in the sense of sharing some common code.
Regards,
Elias
| |