sched/core: spinlock recursion in wake_up_new_task

From: Levin, Alexander (Sasha Levin)
Date: Sun Jun 04 2017 - 03:10:55 EST


Hi all,

I'm seeing the following:

BUG: spinlock recursion on CPU#2, kworker/u18:0/27
lock: 0xffff88003f5e4d40, .magic: dead4ead, .owner: kworker/u18:0/27, .owner_cpu: 3
CPU: 2 PID: 27 Comm: kworker/u18:0 Not tainted 4.12.0-rc3-next-20170602+ #55
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.1-1ubuntu1 04/01/2014
Workqueue: events_unbound call_usermodehelper_exec_work
Call Trace:
__dump_stack lib/dump_stack.c:16 [inline]
dump_stack+0x115/0x1d1 lib/dump_stack.c:52
spin_dump+0x170/0x320 kernel/locking/spinlock_debug.c:67
spin_bug kernel/locking/spinlock_debug.c:75 [inline]
debug_spin_lock_before kernel/locking/spinlock_debug.c:84 [inline]
do_raw_spin_lock+0x191/0x210 kernel/locking/spinlock_debug.c:112
__raw_spin_lock include/linux/spinlock_api_smp.h:143 [inline]
_raw_spin_lock+0x5d/0x90 kernel/locking/spinlock.c:151
__task_rq_lock+0x12f/0x5b0 kernel/sched/core.c:100
wake_up_new_task+0x59c/0x14d0 kernel/sched/core.c:2546
_do_fork+0x2b8/0x1560 kernel/fork.c:2051
kernel_thread+0x34/0x40 kernel/fork.c:2088
call_usermodehelper_exec_sync kernel/kmod.c:277 [inline]
call_usermodehelper_exec_work+0x10d/0x2d0 kernel/kmod.c:329
process_one_work+0xd05/0x2260 kernel/workqueue.c:2097
worker_thread+0x23e/0x1b50 kernel/workqueue.c:2231
kthread+0x3ac/0x540 kernel/kthread.c:231
ret_from_fork+0x2a/0x40 arch/x86/entry/entry_64.S:424

With the latest -next kernel. It doesn't seem to reproduce too often so
I don't have an easy way to get more details yet.

--

Thanks,
Sasha