Re: [PATCH 07/16] freezer: don't distinguish nosig tasks on thaw

From: Rafael J. Wysocki
Date: Fri Aug 19 2011 - 17:13:19 EST


On Friday, August 19, 2011, Tejun Heo wrote:
> 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.

I'm not sure if I like this patch.

Right now there are no ordering requirements between the two groups
of processes, but if we decide to freeze filesystems on suspend,
we'll need to thaw them between nosig and sig I suppose.

Thanks,
Rafael


> Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
> ---
> kernel/power/process.c | 20 +++++++-------------
> 1 files changed, 7 insertions(+), 13 deletions(-)
>
> diff --git a/kernel/power/process.c b/kernel/power/process.c
> index ddfaba4..3eee548 100644
> --- a/kernel/power/process.c
> +++ b/kernel/power/process.c
> @@ -160,34 +160,28 @@ int freeze_processes(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");
> }
>

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