Messages in this thread | | | From | "Rafael J. Wysocki" <> | Subject | Re: [PATCH] PM/Freezer/Docs: Document the beauty of freeze/thaw semantics | Date | Thu, 2 Feb 2012 20:36:58 +0100 |
| |
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@linux.vnet.ibm.com>
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@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > >
| |