kworker with empty task->cpus_allowed (was Re: [v4.12-rc1 regression] mount ext4 fs results in kernel crash on PPC64le host)

Michael Ellerman mpe at
Tue Jul 4 21:06:55 AEST 2017

Eryu Guan <eguan at> writes:

> On Tue, Jul 04, 2017 at 04:26:11PM +1000, Michael Ellerman wrote:
>> Eryu Guan <eguan at> writes:
>> > On Fri, Jun 30, 2017 at 08:07:02PM +1000, Michael Ellerman wrote:
>> >> 
>> >> Can you try this patch and see if it changes anything? (with the debug
>> >> still applied).
>> >
>> > This patch fixes the crash for me. After appliying this patch (with all
>> > other debug patches still applied), kernel didn't print any warnings or
>> > calltraces or debug messages.
>> OK. It's not meant to fix it :)
> Understand.
>> I can't form any connection between your bisection result and that
>> patch, nothing is making any sense TBH.
>> What hardware are you on? And are you doing CPU hotplug or anything like that?
> It's a "PowerVM" guest (I'm not familiar with powerpc, I don't know what
> does that mean..) running on Power8 host. I didn't do any CPU hotplug or
> anything like that.

OK thanks.

We might have to try and sync up on irc so we can debug this a bit faster.

Can you try this hunk also?


diff --git a/kernel/workqueue.c b/kernel/workqueue.c
index c74bf39ef764..7c55721b1f1d 100644
--- a/kernel/workqueue.c
+++ b/kernel/workqueue.c
@@ -3902,6 +3906,7 @@ static int alloc_and_link_pwqs(struct workqueue_struct *wq)
 		     "ordering guarantee broken for workqueue %s\n", wq->name);
 		return ret;
 	} else {
+		WARN_ON(cpumask_empty(unbound_std_wq_attrs[highpri]->cpumask));
 		return apply_workqueue_attrs(wq, unbound_std_wq_attrs[highpri]);

More information about the Linuxppc-dev mailing list