[PATCH 0/1] poweroff: change orderly_poweroff() to useschedule_work()

From: Oleg Nesterov
Date: Wed Mar 13 2013 - 13:48:58 EST


On 03/12, Oleg Nesterov wrote:
>
> On 03/12, Linus Torvalds wrote:
> >
> > So yeah, I guess
> > everything could just go into a workqueue.
>
> OK, I'll try to make the patch tomorrow. Should be trivial but it is
> not clear how we should pass "bool force" without allocating the
> work_struct which would be nice to avoid.

Yes, it would be nice to keep it simple and use a single work/arg.

Could you review? The change is trivial but

- orderly_poweroff() always return 0.

- the patch assumes that orderly_poweroff(false) after
orderly_poweroff(true) acts as "force = true". Only xen
uses "false", I hope this is fine.

In fact I think we can change poweroff_force argument
unconditionally, this "if (force)" check is mostly
documentation.

But we can add the locking or even allocate work_struct
every time if this is wrong (or just looks wrong).

- The patch assumes that orderly_poweroff() doesn't need
the keventd_up() check, I hope this is correct...


Lucas, Andrew, sorry. If this patch will be applied, then

kernel-sysc-use-the-simpler-call_usermodehelper.patch

should be dropped. Or I can redo this fix on top of -mm cleanup.

> And. It seems there is another problem. argv_split(poweroff_cmd) can
> obviously race with proc_dostring() ?

I'll send another patch...

Oleg.

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