[ 95.150863][ T10] [ 95.150965][ T10] ===================================================== [ 95.151148][ T10] WARNING: SOFTIRQ-safe -> SOFTIRQ-unsafe lock order detected [ 95.151367][ T10] 6.9.0-rc1-virtme #1 Not tainted [ 95.151515][ T10] ----------------------------------------------------- [ 95.151701][ T10] kworker/u16:0/10 [HC0[0]:SC0[2]:HE1:SE0] is trying to acquire: [ 95.151921][ T10] ffff888001a70968 (&p->alloc_lock){+.+.}-{2:2}, at: __get_task_comm+0x27/0x70 [ 95.152190][ T10] [ 95.152190][ T10] and this task is already holding: [ 95.152407][ T10] ffff8880361bf218 (&ul->lock){+.-.}-{2:2}, at: rt6_uncached_list_flush_dev+0x138/0x840 [ 95.152669][ T10] which would create a new lock dependency: [ 95.152850][ T10] (&ul->lock){+.-.}-{2:2} -> (&p->alloc_lock){+.+.}-{2:2} [ 95.153074][ T10] [ 95.153074][ T10] but this new dependency connects a SOFTIRQ-irq-safe lock: [ 95.153321][ T10] (&ul->lock){+.-.}-{2:2} [ 95.153325][ T10] [ 95.153325][ T10] ... which became SOFTIRQ-irq-safe at: [ 95.153679][ T10] __lock_acquire+0x797/0x1570 [ 95.153830][ T10] lock_acquire.part.0+0xeb/0x330 [ 95.153979][ T10] _raw_spin_lock_bh+0x38/0x50 [ 95.154131][ T10] rt6_uncached_list_del+0x77/0x200 [ 95.154280][ T10] ip6_dst_destroy+0x74/0x1e0 [ 95.154425][ T10] dst_destroy+0xbc/0x370 [ 95.154572][ T10] rcu_do_batch+0x3c0/0xfb0 [ 95.154718][ T10] rcu_core+0x2be/0x500 [ 95.154828][ T10] __do_softirq+0x1f8/0x5df [ 95.154981][ T10] irq_exit_rcu+0x97/0xc0 [ 95.155130][ T10] sysvec_apic_timer_interrupt+0x75/0x80 [ 95.155279][ T10] asm_sysvec_apic_timer_interrupt+0x1a/0x20 [ 95.155464][ T10] default_idle+0xf/0x20 [ 95.155574][ T10] default_idle_call+0x6d/0xb0 [ 95.155723][ T10] cpuidle_idle_call+0x1f4/0x280 [ 95.155867][ T10] do_idle+0xf9/0x160 [ 95.155981][ T10] cpu_startup_entry+0x54/0x60 [ 95.156127][ T10] start_secondary+0x21c/0x2b0 [ 95.156283][ T10] common_startup_64+0x12c/0x138 [ 95.156431][ T10] [ 95.156431][ T10] to a SOFTIRQ-irq-unsafe lock: [ 95.156609][ T10] (&p->alloc_lock){+.+.}-{2:2} [ 95.156613][ T10] [ 95.156613][ T10] ... which became SOFTIRQ-irq-unsafe at: [ 95.156984][ T10] ... [ 95.156986][ T10] __lock_acquire+0x797/0x1570 [ 95.157203][ T10] lock_acquire.part.0+0xeb/0x330 [ 95.157355][ T10] _raw_spin_lock+0x30/0x40 [ 95.157502][ T10] set_mems_allowed+0x1d/0x210 [ 95.157643][ T10] kernel_init_freeable+0x72/0x310 [ 95.157793][ T10] kernel_init+0x20/0x200 [ 95.157942][ T10] ret_from_fork+0x31/0x70 [ 95.158087][ T10] ret_from_fork_asm+0x1a/0x30 [ 95.158232][ T10] [ 95.158232][ T10] other info that might help us debug this: [ 95.158232][ T10] [ 95.158524][ T10] Possible interrupt unsafe locking scenario: [ 95.158524][ T10] [ 95.158745][ T10] CPU0 CPU1 [ 95.158891][ T10] ---- ---- [ 95.159036][ T10] lock(&p->alloc_lock); [ 95.159151][ T10] local_irq_disable(); [ 95.159334][ T10] lock(&ul->lock); [ 95.159520][ T10] lock(&p->alloc_lock); [ 95.159708][ T10] [ 95.159825][ T10] lock(&ul->lock); [ 95.159926][ T10] [ 95.159926][ T10] *** DEADLOCK *** [ 95.159926][ T10] [ 95.160141][ T10] 5 locks held by kworker/u16:0/10: [ 95.160300][ T10] #0: ffff88800190a948 ((wq_completion)netns){+.+.}-{0:0}, at: process_one_work+0xda6/0x1730 [ 95.160766][ T10] #1: ffffc900000afda0 (net_cleanup_work){+.+.}-{0:0}, at: process_one_work+0xde2/0x1730 [ 95.161028][ T10] #2: ffffffffa699bc50 (pernet_ops_rwsem){++++}-{3:3}, at: cleanup_net+0xbc/0xb60 [ 95.161457][ T10] #3: ffffffffa69b7208 (rtnl_mutex){+.+.}-{3:3}, at: default_device_exit_batch+0x81/0x2d0 [ 95.161943][ T10] #4: ffff8880361bf218 (&ul->lock){+.-.}-{2:2}, at: rt6_uncached_list_flush_dev+0x138/0x840 [ 95.162241][ T10] [ 95.162241][ T10] the dependencies between SOFTIRQ-irq-safe lock and the holding lock: [ 95.162532][ T10] -> (&ul->lock){+.-.}-{2:2} { [ 95.162688][ T10] HARDIRQ-ON-W at: [ 95.162803][ T10] __lock_acquire+0x797/0x1570 [ 95.163077][ T10] lock_acquire.part.0+0xeb/0x330 [ 95.163261][ T10] _raw_spin_lock_bh+0x38/0x50 [ 95.163446][ T10] rt6_uncached_list_add+0x55/0x1b0 [ 95.163718][ T10] icmp6_dst_alloc+0x2c0/0x450 [ 95.163900][ T10] mld_sendpack+0x529/0xbc0 [ 95.164080][ T10] mld_ifc_work+0x32/0x1f0 [ 95.164267][ T10] process_one_work+0xe2c/0x1730 [ 95.164545][ T10] worker_thread+0x587/0xd30 [ 95.164734][ T10] kthread+0x28a/0x350 [ 95.164886][ T10] ret_from_fork+0x31/0x70 [ 95.165156][ T10] ret_from_fork_asm+0x1a/0x30 [ 95.165344][ T10] IN-SOFTIRQ-W at: [ 95.165456][ T10] __lock_acquire+0x797/0x1570 [ 95.165730][ T10] lock_acquire.part.0+0xeb/0x330 [ 95.165920][ T10] _raw_spin_lock_bh+0x38/0x50 [ 95.166106][ T10] rt6_uncached_list_del+0x77/0x200 [ 95.166293][ T10] ip6_dst_destroy+0x74/0x1e0 [ 95.166483][ T10] dst_destroy+0xbc/0x370 [ 95.166747][ T10] rcu_do_batch+0x3c0/0xfb0 [ 95.166949][ T10] rcu_core+0x2be/0x500 [ 95.167135][ T10] __do_softirq+0x1f8/0x5df [ 95.167400][ T10] irq_exit_rcu+0x97/0xc0 [ 95.167585][ T10] sysvec_apic_timer_interrupt+0x75/0x80 [ 95.167805][ T10] asm_sysvec_apic_timer_interrupt+0x1a/0x20 [ 95.168110][ T10] default_idle+0xf/0x20 [ 95.168297][ T10] default_idle_call+0x6d/0xb0 [ 95.168479][ T10] cpuidle_idle_call+0x1f4/0x280 [ 95.168741][ T10] do_idle+0xf9/0x160 [ 95.168889][ T10] cpu_startup_entry+0x54/0x60 [ 95.169070][ T10] start_secondary+0x21c/0x2b0 [ 95.169251][ T10] common_startup_64+0x12c/0x138 [ 95.169514][ T10] INITIAL USE at: [ 95.169625][ T10] __lock_acquire+0x797/0x1570 [ 95.169809][ T10] lock_acquire.part.0+0xeb/0x330 [ 95.169993][ T10] _raw_spin_lock_bh+0x38/0x50 [ 95.170331][ T10] rt6_uncached_list_add+0x55/0x1b0 [ 95.170513][ T10] icmp6_dst_alloc+0x2c0/0x450 [ 95.170702][ T10] mld_sendpack+0x529/0xbc0 [ 95.170998][ T10] mld_ifc_work+0x32/0x1f0 [ 95.171187][ T10] process_one_work+0xe2c/0x1730 [ 95.171373][ T10] worker_thread+0x587/0xd30 [ 95.171559][ T10] kthread+0x28a/0x350 [ 95.171707][ T10] ret_from_fork+0x31/0x70 [ 95.171894][ T10] ret_from_fork_asm+0x1a/0x30 [ 95.172077][ T10] } [ 95.172152][ T10] ... key at: [] __key.15+0x0/0x40 [ 95.172373][ T10] [ 95.172373][ T10] the dependencies between the lock to be acquired [ 95.172374][ T10] and SOFTIRQ-irq-unsafe lock: [ 95.172778][ T10] -> (&p->alloc_lock){+.+.}-{2:2} { [ 95.173037][ T10] HARDIRQ-ON-W at: [ 95.173153][ T10] __lock_acquire+0x797/0x1570 [ 95.173349][ T10] lock_acquire.part.0+0xeb/0x330 [ 95.173539][ T10] _raw_spin_lock+0x30/0x40 [ 95.173726][ T10] set_mems_allowed+0x1d/0x210 [ 95.173914][ T10] kernel_init_freeable+0x72/0x310 [ 95.174104][ T10] kernel_init+0x20/0x200 [ 95.174292][ T10] ret_from_fork+0x31/0x70 [ 95.174478][ T10] ret_from_fork_asm+0x1a/0x30 [ 95.174750][ T10] SOFTIRQ-ON-W at: [ 95.174857][ T10] __lock_acquire+0x797/0x1570 [ 95.175041][ T10] lock_acquire.part.0+0xeb/0x330 [ 95.175230][ T10] _raw_spin_lock+0x30/0x40 [ 95.175418][ T10] set_mems_allowed+0x1d/0x210 [ 95.175698][ T10] kernel_init_freeable+0x72/0x310 [ 95.175997][ T10] kernel_init+0x20/0x200 [ 95.176183][ T10] ret_from_fork+0x31/0x70 [ 95.176375][ T10] ret_from_fork_asm+0x1a/0x30 [ 95.176565][ T10] INITIAL USE at: [ 95.176678][ T10] __lock_acquire+0x797/0x1570 [ 95.176873][ T10] lock_acquire.part.0+0xeb/0x330 [ 95.177064][ T10] _raw_spin_lock+0x30/0x40 [ 95.177338][ T10] set_mems_allowed+0x1d/0x210 [ 95.177526][ T10] kernel_init_freeable+0x72/0x310 [ 95.177718][ T10] kernel_init+0x20/0x200 [ 95.178015][ T10] ret_from_fork+0x31/0x70 [ 95.178203][ T10] ret_from_fork_asm+0x1a/0x30 [ 95.178392][ T10] } [ 95.178477][ T10] ... key at: [] __key.388+0x0/0x40 [ 95.178700][ T10] ... acquired at: [ 95.178815][ T10] check_prev_add+0x194/0xce0 [ 95.178967][ T10] validate_chain+0x71d/0x9b0 [ 95.179116][ T10] __lock_acquire+0xaf0/0x1570 [ 95.179347][ T10] lock_acquire.part.0+0xeb/0x330 [ 95.179495][ T10] _raw_spin_lock+0x30/0x40 [ 95.179641][ T10] __get_task_comm+0x27/0x70 [ 95.179870][ T10] ref_tracker_alloc+0x2ee/0x490 [ 95.180096][ T10] rt6_uncached_list_flush_dev+0x494/0x840 [ 95.180283][ T10] rt6_disable_ip+0xd9/0x140 [ 95.180436][ T10] addrconf_ifdown.isra.0+0x103/0x1560 [ 95.180677][ T10] addrconf_notify+0xd1/0xd60 [ 95.180828][ T10] notifier_call_chain+0xcd/0x150 [ 95.181088][ T10] dev_close_many+0x2d8/0x650 [ 95.181241][ T10] unregister_netdevice_many_notify+0x3d5/0x1190 [ 95.181426][ T10] default_device_exit_batch+0x234/0x2d0 [ 95.181610][ T10] cleanup_net+0x4f3/0xb60 [ 95.181762][ T10] process_one_work+0xe2c/0x1730 [ 95.181912][ T10] worker_thread+0x587/0xd30 [ 95.182065][ T10] kthread+0x28a/0x350 [ 95.182183][ T10] ret_from_fork+0x31/0x70 [ 95.182335][ T10] ret_from_fork_asm+0x1a/0x30 [ 95.182486][ T10] [ 95.182640][ T10] [ 95.182640][ T10] stack backtrace: [ 95.182825][ T10] CPU: 3 PID: 10 Comm: kworker/u16:0 Not tainted 6.9.0-rc1-virtme #1 [ 95.183130][ T10] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.3-0-ga6ed6b701f0a-prebuilt.qemu.org 04/01/2014 [ 95.183463][ T10] Workqueue: netns cleanup_net [ 95.183697][ T10] Call Trace: [ 95.183815][ T10] [ 95.183892][ T10] dump_stack_lvl+0x82/0xd0 [ 95.184054][ T10] print_bad_irq_dependency+0x957/0xd40 [ 95.184205][ T10] ? __pfx_print_bad_irq_dependency+0x10/0x10 [ 95.184485][ T10] ? __pfx_usage_skip+0x10/0x10 [ 95.184635][ T10] ? __bfs+0x246/0x650 [ 95.184753][ T10] ? __pfx_usage_match+0x10/0x10 [ 95.184901][ T10] check_irq_usage+0x596/0x850 [ 95.185046][ T10] ? arch_stack_walk+0x8c/0xf0 [ 95.185277][ T10] ? __pfx_check_irq_usage+0x10/0x10 [ 95.185428][ T10] ? __bfs+0x246/0x650 [ 95.185548][ T10] ? __pfx_hlock_conflict+0x10/0x10 [ 95.185697][ T10] ? check_path.constprop.0+0x24/0x50 [ 95.185969][ T10] ? check_noncircular+0x14c/0x3e0 [ 95.186123][ T10] ? __pfx_check_noncircular+0x10/0x10 [ 95.186275][ T10] ? check_prev_add+0x194/0xce0 [ 95.186426][ T10] check_prev_add+0x194/0xce0 [ 95.186579][ T10] ? validate_chain+0x130/0x9b0 [ 95.186732][ T10] validate_chain+0x71d/0x9b0 [ 95.186889][ T10] ? mark_lock+0x38/0x3e0 [ 95.187001][ T10] ? __pfx_validate_chain+0x10/0x10 [ 95.187151][ T10] ? hlock_class+0x4e/0x130 [ 95.187374][ T10] ? mark_lock+0x38/0x3e0 [ 95.187485][ T10] __lock_acquire+0xaf0/0x1570 [ 95.187634][ T10] lock_acquire.part.0+0xeb/0x330 [ 95.187782][ T10] ? __get_task_comm+0x27/0x70 [ 95.187929][ T10] ? mark_lock+0x38/0x3e0 [ 95.188115][ T10] ? __pfx_lock_acquire.part.0+0x10/0x10 [ 95.188265][ T10] ? trace_lock_acquire+0x135/0x1c0 [ 95.188414][ T10] ? __get_task_comm+0x27/0x70 [ 95.188558][ T10] ? lock_acquire+0x32/0xc0 [ 95.188780][ T10] ? __get_task_comm+0x27/0x70 [ 95.188927][ T10] _raw_spin_lock+0x30/0x40 [ 95.189077][ T10] ? __get_task_comm+0x27/0x70 [ 95.189223][ T10] __get_task_comm+0x27/0x70 [ 95.189445][ T10] ref_tracker_alloc+0x2ee/0x490 [ 95.189593][ T10] ? __pfx_ref_tracker_alloc+0x10/0x10 [ 95.189739][ T10] ? __lock_release+0x103/0x460 [ 95.189888][ T10] ? rt6_uncached_list_flush_dev+0x494/0x840 [ 95.190144][ T10] ? rt6_disable_ip+0xd9/0x140 [ 95.190289][ T10] ? addrconf_ifdown.isra.0+0x103/0x1560 [ 95.190435][ T10] ? addrconf_notify+0xd1/0xd60 [ 95.190580][ T10] ? notifier_call_chain+0xcd/0x150 [ 95.190725][ T10] ? dev_close_many+0x2d8/0x650 [ 95.191059][ T10] ? unregister_netdevice_many_notify+0x3d5/0x1190 [ 95.191243][ T10] ? default_device_exit_batch+0x234/0x2d0 [ 95.191426][ T10] ? cleanup_net+0x4f3/0xb60 [ 95.191579][ T10] ? process_one_work+0xe2c/0x1730 [ 95.191738][ T10] ? worker_thread+0x587/0xd30 [ 95.191884][ T10] ? kthread+0x28a/0x350 [ 95.191994][ T10] ? ret_from_fork+0x31/0x70 [ 95.192140][ T10] ? ret_from_fork_asm+0x1a/0x30 [ 95.192293][ T10] ? in6_dev_get+0xcc/0x210 [ 95.192449][ T10] rt6_uncached_list_flush_dev+0x494/0x840 [ 95.192635][ T10] rt6_disable_ip+0xd9/0x140 [ 95.192788][ T10] ? __pfx_rt6_disable_ip+0x10/0x10 [ 95.193049][ T10] ? mark_lock+0x38/0x3e0 [ 95.193161][ T10] addrconf_ifdown.isra.0+0x103/0x1560 [ 95.193313][ T10] ? __try_to_del_timer_sync+0xe7/0x140 [ 95.193461][ T10] ? __pfx_addrconf_ifdown.isra.0+0x10/0x10 [ 95.193657][ T10] addrconf_notify+0xd1/0xd60 [ 95.193803][ T10] notifier_call_chain+0xcd/0x150 [ 95.193951][ T10] dev_close_many+0x2d8/0x650 [ 95.194105][ T10] ? __pfx_dev_close_many+0x10/0x10 [ 95.194337][ T10] ? default_device_exit_batch+0x81/0x2d0 [ 95.194485][ T10] ? trace_contention_end+0xdc/0x140 [ 95.194638][ T10] unregister_netdevice_many_notify+0x3d5/0x1190 [ 95.194825][ T10] ? mutex_is_locked+0x17/0x50 [ 95.195049][ T10] ? __pfx_unregister_netdevice_many_notify+0x10/0x10 [ 95.195235][ T10] ? __pfx_unregister_netdevice_queue+0x10/0x10 [ 95.195422][ T10] default_device_exit_batch+0x234/0x2d0 [ 95.195577][ T10] ? __pfx_default_device_exit_batch+0x10/0x10 [ 95.195842][ T10] ? ops_exit_list+0xb4/0x170 [ 95.195996][ T10] cleanup_net+0x4f3/0xb60 [ 95.196149][ T10] ? __pfx_lock_acquire.part.0+0x10/0x10 [ 95.196300][ T10] ? __pfx_cleanup_net+0x10/0x10 [ 95.196529][ T10] ? trace_lock_acquire+0x135/0x1c0 [ 95.196761][ T10] ? process_one_work+0xde2/0x1730 [ 95.196910][ T10] ? lock_acquire+0x32/0xc0 [ 95.197060][ T10] ? process_one_work+0xde2/0x1730 [ 95.197295][ T10] process_one_work+0xe2c/0x1730 [ 95.197449][ T10] ? __pfx___lock_release+0x10/0x10 [ 95.197595][ T10] ? __pfx_process_one_work+0x10/0x10 [ 95.197748][ T10] ? assign_work+0x16c/0x240 [ 95.197900][ T10] worker_thread+0x587/0xd30 [ 95.198127][ T10] ? __pfx_worker_thread+0x10/0x10 [ 95.198288][ T10] kthread+0x28a/0x350 [ 95.198481][ T10] ? __pfx_kthread+0x10/0x10 [ 95.198628][ T10] ret_from_fork+0x31/0x70 [ 95.198783][ T10] ? __pfx_kthread+0x10/0x10 [ 95.198934][ T10] ret_from_fork_asm+0x1a/0x30 [ 95.199085][ T10]