FYI, we noticed the following commit: commit: 46a4746d9a364a9b0267c19be0f8419e9b72ad37 ("task_work: Replace spin_unlock_wait() with lock/unlock pair") https://git.kernel.org/cgit/linux/kernel/git/paulmck/linux-rcu.git spin_unlock_wait_no.2017.06.29c in testcase: boot on test machine: qemu-system-x86_64 -enable-kvm -cpu host -smp 2 -m 1G caused below changes (please refer to attached dmesg/kmsg for entire log/backtrace): +-------------------------------------------------+------------+------------+ | | ee4c0fbd46 | 46a4746d9a | +-------------------------------------------------+------------+------------+ | boot_successes | 6 | 0 | | boot_failures | 0 | 10 | | inconsistent{IN-HARDIRQ-W}->{HARDIRQ-ON-W}usage | 0 | 8 | | inconsistent{IN-SOFTIRQ-W}->{SOFTIRQ-ON-W}usage | 0 | 2 | +-------------------------------------------------+------------+------------+ [ 4.784726] WARNING: inconsistent lock state [ 4.785206] 4.12.0-rc4-00090-g46a4746 #86 Not tainted [ 4.785733] -------------------------------- [ 4.786203] inconsistent {IN-HARDIRQ-W} -> {HARDIRQ-ON-W} usage. [ 4.786815] modprobe/143 [HC0[0]:SC0[0]:HE1:SE1] takes: [ 4.787377] (&p->pi_lock){?.-.-.}, at: [] task_work_run+0x6e/0xa8 [ 4.788202] {IN-HARDIRQ-W} state was registered at: [ 4.788711] __lock_acquire+0x3a9/0xed4 [ 4.789151] lock_acquire+0x125/0x1be [ 4.789571] _raw_spin_lock_irqsave+0x49/0x84 [ 4.790048] try_to_wake_up+0x35/0x25b [ 4.790478] wake_up_process+0x15/0x17 [ 4.790910] watchdog_timer_fn+0x51/0x1e3 [ 4.791368] __hrtimer_run_queues+0x164/0x30e [ 4.791848] hrtimer_interrupt+0x75/0x143 [ 4.792296] local_apic_timer_interrupt+0x4b/0x4e [ 4.792800] smp_apic_timer_interrupt+0x29/0x39 [ 4.800188] apic_timer_interrupt+0x93/0xa0 [ 4.800649] do_raw_spin_trylock+0x1c/0x3e [ 4.801107] _raw_spin_lock+0x3c/0x6a [ 4.801531] lockref_put_or_lock+0xd/0x2c [ 4.801984] dput+0x4d/0x1e1 [ 4.802343] path_put+0x16/0x21 [ 4.802723] terminate_walk+0x26/0x88 [ 4.803160] path_lookupat+0x179/0x18b [ 4.803589] filename_lookup+0x7d/0xfa [ 4.804021] user_path_at_empty+0x37/0x3d [ 4.804470] vfs_statx+0x72/0xb6 [ 4.804868] clean_path+0x38/0x72 [ 4.805260] do_name+0x7a/0x29e [ 4.805640] write_buffer+0x28/0x39 [ 4.806053] flush_buffer+0x39/0x91 [ 4.806459] __gunzip+0x271/0x311 [ 4.806856] gunzip+0x11/0x13 [ 4.807234] unpack_to_rootfs+0x14c/0x274 [ 4.807688] populate_rootfs+0x61/0x106 [ 4.808128] do_one_initcall+0x90/0x138 [ 4.808563] kernel_init_freeable+0x1d5/0x25d [ 4.809049] kernel_init+0xe/0xfa [ 4.809441] ret_from_fork+0x2a/0x40 [ 4.809863] irq event stamp: 789 [ 4.810244] hardirqs last enabled at (789): [] prepare_exit_to_usermode+0x69/0xd4 [ 4.811174] hardirqs last disabled at (788): [] syscall_return_slowpath+0x15a/0x1c6 [ 4.812113] softirqs last enabled at (0): [] copy_process+0x60f/0x19c0 [ 4.813012] softirqs last disabled at (0): [< (null)>] (null) [ 4.813802] [ 4.813802] other info that might help us debug this: [ 4.814520] Possible unsafe locking scenario: [ 4.814520] [ 4.815204] CPU0 [ 4.815523] ---- [ 4.815847] lock(&p->pi_lock); [ 4.816226] [ 4.816559] lock(&p->pi_lock); [ 4.816956] [ 4.816956] *** DEADLOCK *** [ 4.816956] [ 4.817706] no locks held by modprobe/143. [ 4.818155] [ 4.818155] stack backtrace: [ 4.818710] CPU: 0 PID: 143 Comm: modprobe Not tainted 4.12.0-rc4-00090-g46a4746 #86 [ 4.819538] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.9.3-20161025_171302-gandalf 04/01/2014 [ 4.820542] Call Trace: [ 4.820870] dump_stack+0x82/0xb8 [ 4.821258] print_usage_bug+0x1bc/0x1d1 [ 4.821692] ? check_usage_forwards+0xba/0xba [ 4.822164] mark_lock+0x10b/0x1ec [ 4.822559] __lock_acquire+0x411/0xed4 [ 4.822991] ? mark_lock+0x24/0x1ec [ 4.823407] ? unmap_region+0xdb/0xff [ 4.823834] ? __lock_is_held+0x47/0x7a [ 4.824264] lock_acquire+0x125/0x1be [ 4.824676] ? lock_acquire+0x125/0x1be [ 4.825107] ? task_work_run+0x6e/0xa8 [ 4.825529] _raw_spin_lock+0x34/0x6a [ 4.825946] ? task_work_run+0x6e/0xa8 [ 4.826366] task_work_run+0x6e/0xa8 [ 4.826774] prepare_exit_to_usermode+0xae/0xd4 [ 4.827270] syscall_return_slowpath+0x162/0x1c6 [ 4.827760] entry_SYSCALL_64_fastpath+0xbc/0xbe [ 4.828252] RIP: 0033:0x7f424ae4b087 [ 4.828659] RSP: 002b:00007ffe825c1df8 EFLAGS: 00000206 ORIG_RAX: 000000000000000b [ 4.829463] RAX: 0000000000000000 RBX: 00007f424b057168 RCX: 00007f424ae4b087 [ 4.830146] RDX: 0000000300000000 RSI: 00000000000028ec RDI: 00007f424b050000 [ 4.830827] RBP: 00007ffe825c1ee0 R08: 0000000000000000 R09: 00007f424b0544c0 [ 4.831523] R10: 00007f424b056030 R11: 0000000000000206 R12: 000000037d3220bf [ 4.832207] R13: 00007f424b0569d8 R14: 00007f424b04e700 R15: 00000000ffffffff [ 4.833444] modprobe (143) used greatest stack depth: 14056 bytes left [ 4.834174] lp: driver loaded but no devices found [ 4.834715] Applicom driver: $Id: ac.c,v 1.30 2000/03/22 16:03:57 dwmw2 Exp $ [ 4.835450] ac.o: No PCI boards found. [ 4.835892] ac.o: For an ISA board you must supply memory and irq parameters. [ 4.836908] Non-volatile memory driver v1.3 [ 4.838510] ppdev: user-space parallel port driver [ 4.839062] telclk_interrupt = 0xf non-mcpbl0010 hw. [ 4.839646] smapi::smapi_init, ERROR invalid usSmapiID [ 4.840202] mwave: tp3780i::tp3780I_InitializeBoardData: Error: SMAPI is not available on this machine [ 4.841165] mwave: mwavedd::mwave_init: Error: Failed to initialize board data [ 4.841962] mwave: mwavedd::mwave_init: Error: Failed to initialize [ 4.842592] Linux agpgart interface v0.103 [ 4.843319] SyncLink PC Card driver $Revision: 4.34 $, tty major#238 To reproduce: git clone https://github.com/01org/lkp-tests.git cd lkp-tests bin/lkp qemu -k job-script # job-script is attached in this email Thanks, Kernel Test Robot