[ 115.894184][ C0] [ 115.894288][ C0] ====================================================== [ 115.894417][ C0] WARNING: possible circular locking dependency detected [ 115.894544][ C0] 7.2.0-rc6-virtme #1 Not tainted [ 115.894653][ C0] ------------------------------------------------------ [ 115.894778][ C0] swapper/0/0 is trying to acquire lock: [ 115.894879][ C0] ff1100000d465358 (&tbl->lock){+.-.}-{3:3}, at: ___neigh_create+0x2be/0x1070 [ 115.895074][ C0] [ 115.895074][ C0] but task is already holding lock: [ 115.895222][ C0] ffa0000000007c98 ((&n->timer)){+.-.}-{0:0}, at: call_timer_fn+0x113/0x4c0 [ 115.895402][ C0] [ 115.895402][ C0] which lock already depends on the new lock. [ 115.895402][ C0] [ 115.895598][ C0] [ 115.895598][ C0] the existing dependency chain (in reverse order) is: [ 115.895771][ C0] [ 115.895771][ C0] -> #1 ((&n->timer)){+.-.}-{0:0}: [ 115.895928][ C0] __lock_acquire+0x518/0xc20 [ 115.896038][ C0] lock_acquire.part.0+0xbc/0x260 [ 115.896138][ C0] __timer_delete_sync+0xea/0x130 [ 115.896238][ C0] neigh_flush_one+0x4bf/0x650 [ 115.896335][ C0] __neigh_ifdown.isra.0+0x1b5/0xea0 [ 115.896457][ C0] neigh_ifdown+0x10/0x20 [ 115.896560][ C0] fib_netdev_event+0x1a9/0x5d0 [ 115.896660][ C0] notifier_call_chain+0xae/0x300 [ 115.896758][ C0] netif_close_many+0x366/0x710 [ 115.896856][ C0] unregister_netdevice_many_notify+0x671/0x19a0 [ 115.896983][ C0] default_device_exit_batch+0x38b/0x600 [ 115.897102][ C0] ops_undo_list+0x2ce/0x8f0 [ 115.897203][ C0] cleanup_net+0x431/0x890 [ 115.897300][ C0] process_one_work+0xdf8/0x1410 [ 115.897398][ C0] worker_thread+0x4f1/0xd60 [ 115.897500][ C0] kthread+0x367/0x460 [ 115.897603][ C0] ret_from_fork+0x474/0x6b0 [ 115.897701][ C0] ret_from_fork_asm+0x11/0x20 [ 115.897800][ C0] [ 115.897800][ C0] -> #0 (&tbl->lock){+.-.}-{3:3}: [ 115.897949][ C0] check_prev_add+0xd8/0xe90 [ 115.898052][ C0] validate_chain+0x6b8/0xc20 [ 115.898151][ C0] __lock_acquire+0x518/0xc20 [ 115.898247][ C0] lock_acquire.part.0+0xbc/0x260 [ 115.898345][ C0] _raw_spin_lock_bh+0x38/0x50 [ 115.898445][ C0] ___neigh_create+0x2be/0x1070 [ 115.898548][ C0] ip6_finish_output2+0xb8b/0x1310 [ 115.898653][ C0] ip6_finish_output+0x646/0xda0 [ 115.898755][ C0] ip6_output+0x23f/0x7f0 [ 115.898851][ C0] ndisc_send_skb+0xba3/0x1520 [ 115.898949][ C0] ndisc_send_ns+0xa9/0x120 [ 115.899051][ C0] ndisc_solicit+0x314/0x480 [ 115.899148][ C0] neigh_probe+0xb3/0x100 [ 115.899249][ C0] neigh_timer_handler+0x191/0x1210 [ 115.899346][ C0] call_timer_fn+0x163/0x4c0 [ 115.899444][ C0] __run_timers+0x68f/0xaa0 [ 115.899540][ C0] run_timer_softirq+0xf0/0x160 [ 115.899642][ C0] handle_softirqs+0x1d8/0x8f0 [ 115.899741][ C0] __irq_exit_rcu+0x103/0x1c0 [ 115.899842][ C0] irq_exit_rcu+0xe/0x30 [ 115.899940][ C0] sysvec_apic_timer_interrupt+0x9d/0xe0 [ 115.900066][ C0] asm_sysvec_apic_timer_interrupt+0x1a/0x20 [ 115.900188][ C0] pv_native_safe_halt+0xf/0x10 [ 115.900285][ C0] default_idle+0x9/0x10 [ 115.900382][ C0] default_idle_call+0x6e/0xb0 [ 115.900481][ C0] cpuidle_idle_call.constprop.0+0x237/0x410 [ 115.900609][ C0] do_idle+0xd8/0x180 [ 115.900706][ C0] cpu_startup_entry+0x53/0x70 [ 115.900803][ C0] rest_init+0x1f7/0x200 [ 115.900902][ C0] start_kernel+0x3af/0x3b0 [ 115.901006][ C0] x86_64_start_reservations+0x24/0x30 [ 115.901128][ C0] x86_64_start_kernel+0x12b/0x130 [ 115.901225][ C0] common_startup_64+0x13e/0x148 [ 115.901324][ C0] [ 115.901324][ C0] other info that might help us debug this: [ 115.901324][ C0] [ 115.901516][ C0] Possible unsafe locking scenario: [ 115.901516][ C0] [ 115.901664][ C0] CPU0 CPU1 [ 115.901762][ C0] ---- ---- [ 115.901859][ C0] lock((&n->timer)); [ 115.901935][ C0] lock(&tbl->lock); [ 115.902061][ C0] lock((&n->timer)); [ 115.902183][ C0] lock(&tbl->lock); [ 115.902258][ C0] [ 115.902258][ C0] *** DEADLOCK *** [ 115.902258][ C0] [ 115.902401][ C0] 3 locks held by swapper/0/0: [ 115.902500][ C0] #0: ffa0000000007c98 ((&n->timer)){+.-.}-{0:0}, at: call_timer_fn+0x113/0x4c0 [ 115.902681][ C0] #1: ffffffff88da1cc0 (rcu_read_lock){....}-{1:3}, at: ndisc_send_skb+0x175/0x1520 [ 115.902851][ C0] #2: ffffffff88da1cc0 (rcu_read_lock){....}-{1:3}, at: ip6_output+0x11d/0x7f0 [ 115.903028][ C0] [ 115.903028][ C0] stack backtrace: [ 115.903149][ C0] CPU: 0 UID: 0 PID: 0 Comm: swapper/0 Not tainted 7.2.0-rc6-virtme #1 PREEMPT(full) [ 115.903152][ C0] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011 [ 115.903154][ C0] Call Trace: [ 115.903156][ C0] [ 115.903157][ C0] dump_stack_lvl+0x6f/0xa0 [ 115.903160][ C0] print_circular_bug.cold+0x38/0x46 [ 115.903164][ C0] check_noncircular+0x171/0x1a0 [ 115.903166][ C0] ? mark_usage+0x61/0x170 [ 115.903168][ C0] check_prev_add+0xd8/0xe90 [ 115.903171][ C0] validate_chain+0x6b8/0xc20 [ 115.903174][ C0] __lock_acquire+0x518/0xc20 [ 115.903176][ C0] lock_acquire.part.0+0xbc/0x260 [ 115.903178][ C0] ? ___neigh_create+0x2be/0x1070 [ 115.903180][ C0] ? rcu_is_watching+0x15/0xd0 [ 115.903182][ C0] ? lock_acquire+0x13c/0x160 [ 115.903184][ C0] _raw_spin_lock_bh+0x38/0x50 [ 115.903186][ C0] ? ___neigh_create+0x2be/0x1070 [ 115.903187][ C0] ___neigh_create+0x2be/0x1070 [ 115.903189][ C0] ? pv_native_safe_halt+0xf/0x10 [ 115.903191][ C0] ip6_finish_output2+0xb8b/0x1310 [ 115.903193][ C0] ? ip6_xmit+0x1cb0/0x1cb0 [ 115.903194][ C0] ? lock_acquire.part.0+0xbc/0x260 [ 115.903196][ C0] ? find_held_lock+0x2b/0x80 [ 115.903198][ C0] ? __lock_release.isra.0+0x6b/0x1a0 [ 115.903201][ C0] ? ip6_mtu+0x15d/0x310 [ 115.903204][ C0] ip6_finish_output+0x646/0xda0 [ 115.903206][ C0] ip6_output+0x23f/0x7f0 [ 115.903208][ C0] ? ip6_finish_output+0xda0/0xda0 [ 115.903209][ C0] ? lock_acquire.part.0+0xbc/0x260 [ 115.903211][ C0] ? find_held_lock+0x2b/0x80 [ 115.903212][ C0] ? __lock_release.isra.0+0x6b/0x1a0 [ 115.903214][ C0] ? __local_bh_enable_ip+0xa5/0x140 [ 115.903216][ C0] ndisc_send_skb+0xba3/0x1520 [ 115.903219][ C0] ? ndisc_recv_na+0x1090/0x1090 [ 115.903222][ C0] ? __local_bh_enable_ip+0xa5/0x140 [ 115.903224][ C0] ndisc_send_ns+0xa9/0x120 [ 115.903227][ C0] ? ndisc_router_discovery+0x2a90/0x2a90 [ 115.903229][ C0] ? lockdep_hardirqs_on_prepare.part.0+0x9a/0x160 [ 115.903231][ C0] ? lockdep_hardirqs_on+0x8c/0x130 [ 115.903232][ C0] ? _raw_spin_unlock_irqrestore+0x53/0x80 [ 115.903234][ C0] ndisc_solicit+0x314/0x480 [ 115.903237][ C0] ? ndisc_send_ns+0x120/0x120 [ 115.903238][ C0] ? __lock_release.isra.0+0x6b/0x1a0 [ 115.903240][ C0] ? neigh_probe+0x62/0x100 [ 115.903242][ C0] ? neigh_periodic_work+0xa60/0xa60 [ 115.903244][ C0] neigh_probe+0xb3/0x100 [ 115.903246][ C0] neigh_timer_handler+0x191/0x1210 [ 115.903248][ C0] ? neigh_periodic_work+0xa60/0xa60 [ 115.903249][ C0] ? rcu_is_watching+0x15/0xd0 [ 115.903250][ C0] call_timer_fn+0x163/0x4c0 [ 115.903252][ C0] ? detach_if_pending+0x1d0/0x1d0 [ 115.903254][ C0] ? find_held_lock+0x2b/0x80 [ 115.903256][ C0] ? __lock_release.isra.0+0x6b/0x1a0 [ 115.903258][ C0] ? rcu_is_watching+0x15/0xd0 [ 115.903260][ C0] __run_timers+0x68f/0xaa0 [ 115.903261][ C0] ? neigh_periodic_work+0xa60/0xa60 [ 115.903264][ C0] ? __bpf_trace_itimer_expire+0x10/0x10 [ 115.903266][ C0] ? __lock_acquire+0x518/0xc20 [ 115.903269][ C0] ? __rwlock_init+0x150/0x150 [ 115.903271][ C0] run_timer_softirq+0xf0/0x160 [ 115.903273][ C0] ? clockevents_program_event+0x307/0x7e0 [ 115.903276][ C0] ? __run_timers+0xaa0/0xaa0 [ 115.903278][ C0] ? trace_irq_enable.constprop.0+0x9b/0x160 [ 115.903281][ C0] ? rcu_is_watching+0x15/0xd0 [ 115.903282][ C0] handle_softirqs+0x1d8/0x8f0 [ 115.903285][ C0] ? _local_bh_enable+0xd0/0xd0 [ 115.903287][ C0] __irq_exit_rcu+0x103/0x1c0 [ 115.903289][ C0] irq_exit_rcu+0xe/0x30 [ 115.903290][ C0] sysvec_apic_timer_interrupt+0x9d/0xe0 [ 115.903292][ C0] [ 115.903293][ C0] [ 115.903294][ C0] ? lockdep_hardirqs_on_prepare.part.0+0x9a/0x160 [ 115.903295][ C0] asm_sysvec_apic_timer_interrupt+0x1a/0x20 [ 115.903297][ C0] RIP: 0010:pv_native_safe_halt+0xf/0x10 [ 115.903300][ C0] Code: 48 8b 3d 44 21 f6 01 e8 1f 00 00 00 48 2b 05 08 42 91 00 c3 0f 1f 80 00 00 00 00 f3 0f 1e fa eb 07 0f 00 2d a3 4d 0d 00 fb f4 0f 1f 40 d6 48 83 ec 20 8b 17 49 89 f8 83 e2 fe 41 89 d2 0f 01 [ 115.903302][ C0] RSP: 0018:ffffffff88a07e18 EFLAGS: 00000292 [ 115.903304][ C0] RAX: 000000000063ccab RBX: ffffffff88a40600 RCX: ffffffff85ae6de7 [ 115.903306][ C0] RDX: ffffffff88a40600 RSI: ffffffff888358e3 RDI: ffffffff8827a8e0 [ 115.903307][ C0] RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000000 [ 115.903308][ C0] R10: 0000000000000000 R11: 0000000000000001 R12: 1ffffffff1140fc6 [ 115.903308][ C0] R13: 0000000000000000 R14: dffffc0000000000 R15: 0000000000014770 [ 115.903310][ C0] ? cpuidle_idle_call.constprop.0+0x237/0x410 [ 115.903313][ C0] ? lockdep_hardirqs_on+0x8c/0x130 [ 115.903314][ C0] default_idle+0x9/0x10 [ 115.903316][ C0] default_idle_call+0x6e/0xb0 [ 115.903318][ C0] cpuidle_idle_call.constprop.0+0x237/0x410 [ 115.903319][ C0] ? arch_cpu_idle_exit+0x40/0x40 [ 115.903321][ C0] ? mark_tsc_async_resets+0x30/0x30 [ 115.903324][ C0] ? rcu_is_watching+0x15/0xd0 [ 115.903326][ C0] do_idle+0xd8/0x180 [ 115.903328][ C0] cpu_startup_entry+0x53/0x70 [ 115.903329][ C0] rest_init+0x1f7/0x200 [ 115.903331][ C0] start_kernel+0x3af/0x3b0 [ 115.903333][ C0] x86_64_start_reservations+0x24/0x30 [ 115.903335][ C0] x86_64_start_kernel+0x12b/0x130 [ 115.903337][ C0] common_startup_64+0x13e/0x148 [ 115.903341][ C0]