Re: [linux-pm] question on resume()

From: Pavel Machek
Date: Wed Jan 31 2007 - 04:37:34 EST


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.

> 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.

Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
-
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/