Hi! > > This changes the "freezer" code used by suspend/hibernate in its treatment > > of tasks in TASK_STOPPED (job control stop) and TASK_TRACED (ptrace) states. > > > > As I understand it, the intent of the "freezer" is to hold all tasks > > from doing anything significant. For this purpose, TASK_STOPPED and > > TASK_TRACED are "frozen enough". It's possible the tasks might resume > > from ptrace calls (if the tracer were unfrozen) or from signals > > (including ones that could come via timer interrupts, etc). But this > > doesn't matter as long as they quickly block again while "freezing" is > > in effect. Some minor adjustments to the signal.c code make sure that > > try_to_freeze() very shortly follows all wakeups from both kinds of > > stop. This lets the freezer code safely leave stopped tasks unmolested. > > > > Changing this fixes the longstanding bug of seeing after resuming from > > suspend/hibernate your shell report "[1] Stopped" and the like for all > > your jobs stopped by ^Z et al, as if you had freshly fg'd and ^Z'd them. > > It also removes from the freezer the arcane special case treatment for > > ptrace'd tasks, which relied on intimate knowledge of ptrace > > internals. I'm glad someone who actually understands signal code got to look at this ;-). The patch looks okay to me, but I can't say I'm too qualified in this area. ...but this is 2.6.26 material, right? Pavel -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html _______________________________________________ linux-pm mailing list linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/linux-pm