Re: [PATCH] random: Fix kernel panic due to system_wq use before init

From: Tejun Heo
Date: Wed Sep 14 2016 - 15:56:00 EST


Hello, Linus.

On Wed, Sep 14, 2016 at 12:14:30PM -0700, Linus Torvalds wrote:
> I'm wondering if we couldn't just initialize "system_wq" earlier.
> Right now init_workqueues() is an "early_initcall()", so it's at the
> same priority as a number of other random early initcalls. My gut
> feeling is that it should be initialized even earlier, with the
> scheduler.
>
> Because dammit, we use "schedule_work()" as if it was a pretty core
> scheduler thing, and having to have some odd knowledge of system_wq
> initialization details in the rest of the kernel sounds really really
> wrong.
>
> I don't think the random code is at all special in maybe wanting to
> schedule some work despite being an "early" initcall.
>
> Adding Tejun to the cc, and quoting the whole email.
>
> Tejun, comments?

We've used keventd_up() for this purpose and it hasn't been big enough
an issue as workqueue usages during earlyboot are very rare (only five
users right now). But, yeah, it's getting used a more and more and
there's no harm in moving it to earlier. I'll see how early I can
push it.

Thanks.

--
tejun