Am Mittwoch, 31. Januar 2007 10:36 schrieb Pavel Machek: > Hi! > > > > Yes, it will. The process freezer can only return success if there are no more > > > TASK_UNINTERRUPTIBLE tasks. Otherwise it fails (after a timeout). > > > > So, this means, on suspend(): > > > > 1. Don't worry about TASK_UNINTERRUPTIBLE > > 2. Do worry about TASK_INTERRUPTIBLE > > We have to cease IO and must not call wake_up_interruptible() > > "cease IO"? No, I believe it is enough not to start new I/O. Userspace > is frozen at that point, it can't ask you to do I/O. > > > Isn't that a race until suspend() is called? > > I do not think so. What about URBs in flight which are waited for with TASK_INTERRUPTIBLE? > > On resume(): > > > > 1. Don't worry about TASK_UNINTERRUPTIBLE > > 2. Do not restart IO that may call wake_up_interruptible() > > > > When do we restart such IO? > > We reuse signal handling code to do that for us. It is same situation > as when someone signals task doing I/O. What happens to tasks in TASK_INTERRUPTIBLE which are frozen? Are they interrupted and frozen? Regards Oliver