FYI, we noticed the following commit: commit: f9838c62374400b24785e8ae20f87075ed283cbd ("completion: Replace spin_unlock_wait() with lock/unlock pair") https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git master in testcase: cpu-hotplug with following parameters: on test machine: qemu-system-x86_64 -enable-kvm -cpu Nehalem -smp 2 -m 1G caused below changes (please refer to attached dmesg/kmsg for entire log/backtrace): +-------------------------------------------------+------------+------------+ | | 4a6fc6107e | f9838c6237 | +-------------------------------------------------+------------+------------+ | boot_successes | 8 | 4 | | boot_failures | 0 | 4 | | inconsistent{IN-HARDIRQ-W}->{HARDIRQ-ON-W}usage | 0 | 4 | +-------------------------------------------------+------------+------------+ [ 33.432536] WARNING: inconsistent lock state [ 33.432929] 4.13.0-rc2-00005-gf9838c62 #122 Not tainted [ 33.433400] -------------------------------- [ 33.433786] inconsistent {IN-HARDIRQ-W} -> {HARDIRQ-ON-W} usage. [ 33.434350] swapper/1/0 [HC0[0]:SC0[0]:HE1:SE1] takes: [ 33.434814] (vector_lock){?.-...}, at: [] lock_vector_lock+0x15/0x17 [ 33.435565] {IN-HARDIRQ-W} state was registered at: [ 33.436021] __lock_acquire+0x342/0xe43 [ 33.436384] lock_acquire+0x142/0x1dd [ 33.436730] _raw_spin_lock_irqsave+0x4d/0x88 [ 33.437139] assign_irq_vector+0x30/0x2f9 [ 33.437515] apic_set_affinity+0x27/0x2f [ 33.437889] msi_domain_set_affinity+0x21/0x5c [ 33.438321] irq_do_set_affinity+0x1d/0x42 [ 33.438700] irq_move_masked_irq+0x81/0x91 [ 33.439086] irq_move_irq+0x46/0x5c [ 33.439412] apic_ack_edge+0x22/0x39 [ 33.439748] irq_chip_ack_parent+0x14/0x16 [ 33.440134] handle_edge_irq+0xa4/0xfc [ 33.440487] handle_irq+0xf0/0xfc [ 33.440800] do_IRQ+0x80/0xfc [ 33.441086] ret_from_intr+0x0/0x1e [ 33.441411] native_safe_halt+0x6/0x8 [ 33.441753] default_idle+0x3f/0x18b [ 33.442094] arch_cpu_idle+0xf/0x11 [ 33.442420] default_idle_call+0x36/0x3d [ 33.442783] do_idle+0xd3/0x19a [ 33.443085] cpu_startup_entry+0x1f/0x21 [ 33.443452] start_secondary+0x108/0x10b [ 33.443818] verify_cpu+0x0/0xf1 [ 33.444128] irq event stamp: 457043 [ 33.444449] hardirqs last enabled at (457043): [] _raw_spin_unlock_irqrestore+0x48/0x5e [ 33.445314] hardirqs last disabled at (457042): [] _raw_spin_lock_irqsave+0x27/0x88 [ 33.446139] softirqs last enabled at (457018): [] __do_softirq+0x352/0x43b [ 33.446904] softirqs last disabled at (456971): [] irq_exit+0x5d/0xad [ 33.447614] [ 33.447614] other info that might help us debug this: [ 33.448205] Possible unsafe locking scenario: [ 33.448205] [ 33.448751] CPU0 [ 33.448984] ---- [ 33.449212] lock(vector_lock); [ 33.449510] [ 33.449753] lock(vector_lock); [ 33.450072] [ 33.450072] *** DEADLOCK *** [ 33.450072] [ 33.450605] no locks held by swapper/1/0. [ 33.450975] [ 33.450975] stack backtrace: [ 33.451371] CPU: 1 PID: 0 Comm: swapper/1 Not tainted 4.13.0-rc2-00005-gf9838c62 #122 [ 33.452075] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.9.3-20161025_171302-gandalf 04/01/2014 [ 33.452981] Call Trace: [ 33.453212] dump_stack+0x86/0xc0 [ 33.453518] print_usage_bug+0x247/0x256 [ 33.453942] ? check_usage_forwards+0x10c/0x10c [ 33.454353] mark_lock+0x345/0x504 [ 33.454666] __lock_acquire+0x3aa/0xe43 [ 33.455022] lock_acquire+0x142/0x1dd [ 33.455358] ? lock_vector_lock+0x15/0x17 [ 33.455722] _raw_spin_lock+0x34/0x6a [ 33.456060] ? lock_vector_lock+0x15/0x17 [ 33.456424] lock_vector_lock+0x15/0x17 [ 33.456772] start_secondary+0xad/0x10b [ 33.457126] secondary_startup_64+0x9f/0x9f [ 33.625476] KVM setup async PF for cpu 1 [ 33.626951] kvm-stealtime: cpu 1, msr 33a0cc80 [ 34.668631] Unregister pv shared memory for cpu 1 [ 34.670735] numa_remove_cpu cpu 1 node 0: mask now 0 [ 34.678082] smpboot: CPU 1 is now offline [ 34.706387] x86: Booting SMP configuration: [ 34.707375] smpboot: Booting Node 0 Processor 1 APIC 0x1 [ 34.711158] kvm-clock: cpu 1, msr 0:354af041, secondary cpu clock [ 34.712001] masked ExtINT on CPU#1 [ 34.712557] numa_add_cpu cpu 1 node 0: mask now 0-1 [ 34.791525] KVM setup async PF for cpu 1 [ 34.793752] kvm-stealtime: cpu 1, msr 33a0cc80 [ 35.468234] Unregister pv shared memory for cpu 1 [ 35.470234] numa_remove_cpu cpu 1 node 0: mask now 0 [ 35.472369] smpboot: CPU 1 is now offline [ 36.489814] x86: Booting SMP configuration: [ 36.490820] smpboot: Booting Node 0 Processor 1 APIC 0x1 [ 36.492193] kvm-clock: cpu 1, msr 0:354af041, secondary cpu clock [ 36.493248] masked ExtINT on CPU#1 [ 36.494005] numa_add_cpu cpu 1 node 0: mask now 0-1 [ 36.576397] KVM setup async PF for cpu 1 [ 36.577751] kvm-stealtime: cpu 1, msr 33a0cc80 [ 36.602823] Unregister pv shared memory for cpu 1 [ 36.606825] numa_remove_cpu cpu 1 node 0: mask now 0 [ 36.608737] smpboot: CPU 1 is now offline [ 36.728615] x86: Booting SMP configuration: [ 36.730895] smpboot: Booting Node 0 Processor 1 APIC 0x1 [ 36.734061] kvm-clock: cpu 1, msr 0:354af041, secondary cpu clock [ 36.735188] masked ExtINT on CPU#1 [ 36.735823] numa_add_cpu cpu 1 node 0: mask now 0-1 [ 36.822495] KVM setup async PF for cpu 1 [ 36.823892] kvm-stealtime: cpu 1, msr 33a0cc80 [ 37.859986] Unregister pv shared memory for cpu 1 [ 37.863025] numa_remove_cpu cpu 1 node 0: mask now 0 [ 37.865247] smpboot: CPU 1 is now offline [ 37.883135] x86: Booting SMP configuration: 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