| From c5c4b7c42e328228085d8f904bf411dcd58d6012 Mon Sep 17 00:00:00 2001 |
| From: Tejun Heo <tj@kernel.org> |
| Date: Mon, 21 Nov 2011 12:32:23 -0800 |
| Subject: 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> |
| (cherry picked from commit 6cd8dedcdd8e8de01391a7cf25f0b2afeb24f8f4) |
| |
| Signed-off-by: Simon Horman <horms@verge.net.au> |
| --- |
| kernel/power/process.c | 20 +++++++------------- |
| 1 file changed, 7 insertions(+), 13 deletions(-) |
| |
| diff --git a/kernel/power/process.c b/kernel/power/process.c |
| index 23822dc..9db048f 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"); |
| } |
| -- |
| 1.7.10.1.362.g242cab3 |
| |