Re: [linux-pm] Re: When to use a freezeable workqueue?

From: Alan Stern
Date: Sun Aug 12 2007 - 22:29:39 EST


On Mon, 13 Aug 2007, Rafael J. Wysocki wrote:

> On Sunday, 12 August 2007 10:11, Stefan Richter wrote:
> > In which situations is create_freezeable_workqueue() to be preferred
> > over create_singlethread_workqueue()?
> >
> > Is a freezable worqueue preferable whenever the worker thread /can/ be
> > frozen, or is it only to be used if the thread /must/ be frozen during
> > suspend?
>
> The latter, IMO.
>
> Generally, if you want it to be frozen.

A good example of a reason for making a workqueue freezable is that the
workqueue contains entries which would cause a suspended device to be
resumed. Obviously you don't want such things to happen while the
system is going to sleep. A little less obviously, there might also be
problems if such a routine ran while the system was waking up.

Another reason might be that the workqueue contains entries which would
try to register or unregister a device. Such actions aren't a good
idea at times when the PM core is iterating through a list of all
devices in order to suspend or resume them. And in the future such
actions may block, effectively freezing the workqueue anyway -- which
could be troublesome if you don't want the workqueue to be frozen!

Alan Stern

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