Re: [PATCH 06/16] freezer: make exiting tasks properly unfreezable

From: Rafael J. Wysocki
Date: Fri Aug 26 2011 - 17:07:55 EST


On Thursday, August 25, 2011, Tejun Heo wrote:
> Hello,
>
> On Thu, Aug 25, 2011 at 11:01:41PM +0200, Rafael J. Wysocki wrote:
> > > But still I can't understand why it is better to consider the exiting
> > > task as "frozen" from the very beginning, right after PTRACE_EVENT_EXIT.
> > > do_exit() does a lot of misc things, and this patch simply makes it
> > > "invisible" to the freezer. This looks "unsafe" even if this is fine
> > > for suspend/etc.
> >
> > Suspend needs the freezer to ensure that processes (user space mostly)
> > won't interact with drivers in any way while devices are being suspended,
> > so if a process is in a state in which it won't talk to any driver
> > and make changes to filesystems any more, it's irrelevant from the
> > suspend's point of view.
>
> Hmm... but freezer can't really achieve that. There are other sources
> of activities.

Which have to be taken care of directly rather than by freezing.

> But anyways, yeah, I think Oleg is right here and we
> should be setting NOFREEZE on transition to EXIT_DEAD.
>
> > > > Rafael, can you please enlighten us on the subject?
> > >
> > > Please ;)
> >
> > Is the above sufficient?
>
> One thing I'm curious about is how many drivers do we have left which
> depend on freezer as opposed to implementing proper quiescing
> mechanism using PM hooks? Are there still a lot left?

There is a number of drivers that use freezable workqueues and that's
prefectly valid in my view. Beyond that, may suspend/resume routines
depend on the freezer to some extent, because they assume that user
space won't talk to the driver while they are being run.

Do you mean any other kind of dependence?

Thanks,
Rafael
--
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/