kworker with empty task->cpus_allowed (was Re: [v4.12-rc1 regression] mount ext4 fs results in kernel crash on PPC64le host)
Eryu Guan
eguan at redhat.com
Fri Jun 30 21:47:56 AEST 2017
On Fri, Jun 30, 2017 at 08:07:02PM +1000, Michael Ellerman wrote:
> Eryu Guan <eguan at redhat.com> writes:
> >
> > I have to update the patch a bit to make it compile.
>
> Sure.
>
> >> + WARN_ON(cpumask_empty(worker->task->cpus_allowed));
> >> + WARN_ON(cpumask_empty(pool->attrs->cpumask));
> >
> > Seems only the last two WARN_ON were triggered.
>
> OK thanks.
>
> 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.
>
> We've been trying to reproduce the bug here but haven't had any luck so far.
I'm using this reproducer:
for i in `seq 5`; do
mkfs -t ext4 -F /dev/sda5 && sleep 3 && mount /dev/sda5 /mnt/ext4 && umount /dev/sda5
done
Thanks,
Eryu
>
> cheers
>
> diff --git a/arch/powerpc/kernel/setup_64.c b/arch/powerpc/kernel/setup_64.c
> index 4640f6d64f8b..b310ecc07e00 100644
> --- a/arch/powerpc/kernel/setup_64.c
> +++ b/arch/powerpc/kernel/setup_64.c
> @@ -733,6 +733,8 @@ void __init setup_per_cpu_areas(void)
> for_each_possible_cpu(cpu) {
> __per_cpu_offset[cpu] = delta + pcpu_unit_offsets[cpu];
> paca[cpu].data_offset = __per_cpu_offset[cpu];
> +
> + set_cpu_numa_node(cpu, numa_cpu_lookup_table[cpu]);
> }
> }
> #endif
More information about the Linuxppc-dev
mailing list