Re: Regression with orderly_poweroff()

From: Linus Torvalds
Date: Tue Mar 12 2013 - 14:42:19 EST


On Tue, Mar 12, 2013 at 11:22 AM, Oleg Nesterov <oleg@xxxxxxxxxx> wrote:
>
> And how this can help? The real problem is not GFP_KERNEL.
> call_usermodehelper_exec(UMH_WAIT_EXEC) will block.

Well, it's probably a starting point.

You need to do the argument handling atomically, because you cannot
delay that in a workqueue (the arguments will be long gone by the time
the workqueue starts up). So I think the fix is a combination of your
and Lucas' code, where you first do the setup atomically (copying the
arguments and allocating that space with GFP_ATOMIC) and then you do a
workqueue to actually do the real work of the usermode helper thing.

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