summaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2011-11-21 21:32:23 +0100
committerTejun Heo <tj@kernel.org>2011-11-21 21:32:23 +0100
commit6cd8dedcdd8e8de01391a7cf25f0b2afeb24f8f4 (patch)
tree2b4b5d40fb4c66ac73839f6a37fb2de4786efc38 /kernel
parentfreezer: remove racy clear_freeze_flag() and set PF_NOFREEZE on dead tasks (diff)
downloadlinux-6cd8dedcdd8e8de01391a7cf25f0b2afeb24f8f4.tar.xz
linux-6cd8dedcdd8e8de01391a7cf25f0b2afeb24f8f4.zip
freezer: don't distinguish nosig tasks on thaw
There's no point in thawing nosig tasks before others. There's no ordering requirement between the two groups on thaw, which the staged thawing can't guarantee anyway. Simplify thaw_processes() by removing the distinction and collapsing thaw_tasks() into thaw_processes(). This will help further updates to freezer. Signed-off-by: Tejun Heo <tj@kernel.org>
Diffstat (limited to 'kernel')
-rw-r--r--kernel/power/process.c20
1 files changed, 7 insertions, 13 deletions
diff --git a/kernel/power/process.c b/kernel/power/process.c
index 23822dc14b6c..9db048fb0d70 100644
--- a/kernel/power/process.c
+++ b/kernel/power/process.c
@@ -170,34 +170,28 @@ int freeze_kernel_threads(void)
return error;
}
-static void thaw_tasks(bool nosig_only)
+void thaw_processes(void)
{
struct task_struct *g, *p;
+ oom_killer_enable();
+
+ printk("Restarting tasks ... ");
+
+ thaw_workqueues();
+
read_lock(&tasklist_lock);
do_each_thread(g, p) {
if (!freezable(p))
continue;
- if (nosig_only && should_send_signal(p))
- continue;
-
if (cgroup_freezing_or_frozen(p))
continue;
__thaw_task(p);
} while_each_thread(g, p);
read_unlock(&tasklist_lock);
-}
-
-void thaw_processes(void)
-{
- oom_killer_enable();
- printk("Restarting tasks ... ");
- thaw_workqueues();
- thaw_tasks(true);
- thaw_tasks(false);
schedule();
printk("done.\n");
}