On Thursday, February 02, 2012, Srivatsa S. Bhat wrote: > The way the different freeze/thaw functions encapsulate each other are quite > lovely from a design point of view. And as a side-effect, the way in which > they are invoked (cleaning up on failure for example) differs significantly > from how usual functions are dealt with. This is because of the underlying > semantics that govern the freezing and thawing of various tasks. > > This subtle aspect that differentiates these functions from the rest, is > worth documenting. > > Many thanks to Tejun Heo for providing enlightenment on this topic. > > Signed-off-by: Srivatsa S. Bhat <srivatsa.bhat@xxxxxxxxxxxxxxxxxx> Applied. Thanks, Rafael > --- > > Documentation/power/freezing-of-tasks.txt | 21 +++++++++++++++++++++ > 1 files changed, 21 insertions(+), 0 deletions(-) > > diff --git a/Documentation/power/freezing-of-tasks.txt b/Documentation/power/freezing-of-tasks.txt > index ebd7490..ec715cd 100644 > --- a/Documentation/power/freezing-of-tasks.txt > +++ b/Documentation/power/freezing-of-tasks.txt > @@ -63,6 +63,27 @@ devices have been reinitialized, the function thaw_processes() is called in > order to clear the PF_FROZEN flag for each frozen task. Then, the tasks that > have been frozen leave __refrigerator() and continue running. > > + > +Rationale behind the functions dealing with freezing and thawing of tasks: > +------------------------------------------------------------------------- > + > +freeze_processes(): > + - freezes only userspace tasks > + > +freeze_kernel_threads(): > + - freezes all tasks (including kernel threads) because we can't freeze > + kernel threads without freezing userspace tasks > + > +thaw_kernel_threads(): > + - thaws only kernel threads; this is particularly useful if we need to do > + anything special in between thawing of kernel threads and thawing of > + userspace tasks, or if we want to postpone the thawing of userspace tasks > + > +thaw_processes(): > + - thaws all tasks (including kernel threads) because we can't thaw userspace > + tasks without thawing kernel threads > + > + > III. Which kernel threads are freezable? > > Kernel threads are not freezable by default. However, a kernel thread may clear > > -- > To unsubscribe from this list: send the line "unsubscribe linux-pm" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html > > -- To unsubscribe from this list: send the line "unsubscribe linux-doc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html