[ 57.138746][ T10] [ 57.138928][ T10] ===================================================== [ 57.139097][ T10] WARNING: SOFTIRQ-safe -> SOFTIRQ-unsafe lock order detected [ 57.139301][ T10] 6.9.0-rc1-virtme #1 Not tainted [ 57.139436][ T10] ----------------------------------------------------- [ 57.139604][ T10] kworker/u16:0/10 [HC0[0]:SC0[2]:HE1:SE0] is trying to acquire: [ 57.139808][ T10] ffff888001a70968 (&p->alloc_lock){+.+.}-{2:2}, at: __get_task_comm+0x27/0x70 [ 57.140058][ T10] [ 57.140058][ T10] and this task is already holding: [ 57.140251][ T10] ffff8880361bf218 (&ul->lock){+.-.}-{2:2}, at: rt6_uncached_list_flush_dev+0x138/0x840 [ 57.140495][ T10] which would create a new lock dependency: [ 57.140663][ T10] (&ul->lock){+.-.}-{2:2} -> (&p->alloc_lock){+.+.}-{2:2} [ 57.140866][ T10] [ 57.140866][ T10] but this new dependency connects a SOFTIRQ-irq-safe lock: [ 57.141096][ T10] (&ul->lock){+.-.}-{2:2} [ 57.141099][ T10] [ 57.141099][ T10] ... which became SOFTIRQ-irq-safe at: [ 57.141421][ T10] __lock_acquire+0x797/0x1570 [ 57.141560][ T10] lock_acquire.part.0+0xeb/0x330 [ 57.141694][ T10] _raw_spin_lock_bh+0x38/0x50 [ 57.141824][ T10] rt6_uncached_list_del+0x77/0x200 [ 57.141953][ T10] ip6_dst_destroy+0x74/0x1e0 [ 57.142086][ T10] dst_destroy+0xbc/0x370 [ 57.142220][ T10] rcu_do_batch+0x3c0/0xfb0 [ 57.142357][ T10] rcu_core+0x2be/0x500 [ 57.142464][ T10] __do_softirq+0x1f8/0x5df [ 57.142598][ T10] irq_exit_rcu+0x97/0xc0 [ 57.142731][ T10] sysvec_apic_timer_interrupt+0x75/0x80 [ 57.142869][ T10] asm_sysvec_apic_timer_interrupt+0x1a/0x20 [ 57.143035][ T10] default_idle+0xf/0x20 [ 57.143138][ T10] default_idle_call+0x6d/0xb0 [ 57.143271][ T10] cpuidle_idle_call+0x1f4/0x280 [ 57.143408][ T10] do_idle+0xf9/0x160 [ 57.143508][ T10] cpu_startup_entry+0x54/0x60 [ 57.143639][ T10] rest_init+0x14f/0x260 [ 57.143737][ T10] start_kernel+0x318/0x3d0 [ 57.143872][ T10] x86_64_start_reservations+0x18/0x30 [ 57.144012][ T10] x86_64_start_kernel+0xba/0x110 [ 57.144141][ T10] common_startup_64+0x12c/0x138 [ 57.144276][ T10] [ 57.144276][ T10] to a SOFTIRQ-irq-unsafe lock: [ 57.144437][ T10] (&p->alloc_lock){+.+.}-{2:2} [ 57.144441][ T10] [ 57.144441][ T10] ... which became SOFTIRQ-irq-unsafe at: [ 57.144759][ T10] ... [ 57.144760][ T10] __lock_acquire+0x797/0x1570 [ 57.144959][ T10] lock_acquire.part.0+0xeb/0x330 [ 57.145094][ T10] _raw_spin_lock+0x30/0x40 [ 57.145241][ T10] set_mems_allowed+0x1d/0x210 [ 57.145377][ T10] kernel_init_freeable+0x72/0x310 [ 57.145513][ T10] kernel_init+0x20/0x200 [ 57.145651][ T10] ret_from_fork+0x31/0x70 [ 57.145783][ T10] ret_from_fork_asm+0x1a/0x30 [ 57.145915][ T10] [ 57.145915][ T10] other info that might help us debug this: [ 57.145915][ T10] [ 57.146172][ T10] Possible interrupt unsafe locking scenario: [ 57.146172][ T10] [ 57.146364][ T10] CPU0 CPU1 [ 57.146493][ T10] ---- ---- [ 57.146634][ T10] lock(&p->alloc_lock); [ 57.146737][ T10] local_irq_disable(); [ 57.146898][ T10] lock(&ul->lock); [ 57.147060][ T10] lock(&p->alloc_lock); [ 57.147224][ T10] <Interrupt> [ 57.147326][ T10] lock(&ul->lock); [ 57.147426][ T10] [ 57.147426][ T10] *** DEADLOCK *** [ 57.147426][ T10] [ 57.147619][ T10] 5 locks held by kworker/u16:0/10: [ 57.147757][ T10] #0: ffff88800190a948 ((wq_completion)netns){+.+.}-{0:0}, at: process_one_work+0xda6/0x1730 [ 57.148029][ T10] #1: ffffc900000afda0 (net_cleanup_work){+.+.}-{0:0}, at: process_one_work+0xde2/0x1730 [ 57.148264][ T10] #2: ffffffff9d99bc50 (pernet_ops_rwsem){++++}-{3:3}, at: cleanup_net+0xbc/0xb60 [ 57.148505][ T10] #3: ffffffff9d9b7208 (rtnl_mutex){+.+.}-{3:3}, at: default_device_exit_batch+0x81/0x2d0 [ 57.148775][ T10] #4: ffff8880361bf218 (&ul->lock){+.-.}-{2:2}, at: rt6_uncached_list_flush_dev+0x138/0x840 [ 57.149051][ T10] [ 57.149051][ T10] the dependencies between SOFTIRQ-irq-safe lock and the holding lock: [ 57.149305][ T10] -> (&ul->lock){+.-.}-{2:2} { [ 57.149444][ T10] HARDIRQ-ON-W at: [ 57.149549][ T10] __lock_acquire+0x797/0x1570 [ 57.149735][ T10] lock_acquire.part.0+0xeb/0x330 [ 57.149901][ T10] _raw_spin_lock_bh+0x38/0x50 [ 57.150080][ T10] rt6_uncached_list_add+0x55/0x1b0 [ 57.150245][ T10] icmp6_dst_alloc+0x2c0/0x450 [ 57.150409][ T10] mld_sendpack+0x529/0xbc0 [ 57.150575][ T10] mld_ifc_work+0x32/0x1f0 [ 57.150744][ T10] process_one_work+0xe2c/0x1730 [ 57.150909][ T10] worker_thread+0x587/0xd30 [ 57.151078][ T10] kthread+0x28a/0x350 [ 57.151216][ T10] ret_from_fork+0x31/0x70 [ 57.151461][ T10] ret_from_fork_asm+0x1a/0x30 [ 57.151626][ T10] IN-SOFTIRQ-W at: [ 57.151727][ T10] __lock_acquire+0x797/0x1570 [ 57.151894][ T10] lock_acquire.part.0+0xeb/0x330 [ 57.152136][ T10] _raw_spin_lock_bh+0x38/0x50 [ 57.152304][ T10] rt6_uncached_list_del+0x77/0x200 [ 57.152467][ T10] ip6_dst_destroy+0x74/0x1e0 [ 57.152709][ T10] dst_destroy+0xbc/0x370 [ 57.152875][ T10] rcu_do_batch+0x3c0/0xfb0 [ 57.153050][ T10] rcu_core+0x2be/0x500 [ 57.153216][ T10] __do_softirq+0x1f8/0x5df [ 57.153384][ T10] irq_exit_rcu+0x97/0xc0 [ 57.153553][ T10] sysvec_apic_timer_interrupt+0x75/0x80 [ 57.153752][ T10] asm_sysvec_apic_timer_interrupt+0x1a/0x20 [ 57.153951][ T10] default_idle+0xf/0x20 [ 57.154114][ T10] default_idle_call+0x6d/0xb0 [ 57.154278][ T10] cpuidle_idle_call+0x1f4/0x280 [ 57.154522][ T10] do_idle+0xf9/0x160 [ 57.154659][ T10] cpu_startup_entry+0x54/0x60 [ 57.154827][ T10] rest_init+0x14f/0x260 [ 57.154990][ T10] start_kernel+0x318/0x3d0 [ 57.155230][ T10] x86_64_start_reservations+0x18/0x30 [ 57.155395][ T10] x86_64_start_kernel+0xba/0x110 [ 57.155563][ T10] common_startup_64+0x12c/0x138 [ 57.155828][ T10] INITIAL USE at: [ 57.155927][ T10] __lock_acquire+0x797/0x1570 [ 57.156093][ T10] lock_acquire.part.0+0xeb/0x330 [ 57.156260][ T10] _raw_spin_lock_bh+0x38/0x50 [ 57.156424][ T10] rt6_uncached_list_add+0x55/0x1b0 [ 57.156586][ T10] icmp6_dst_alloc+0x2c0/0x450 [ 57.156756][ T10] mld_sendpack+0x529/0xbc0 [ 57.156926][ T10] mld_ifc_work+0x32/0x1f0 [ 57.157089][ T10] process_one_work+0xe2c/0x1730 [ 57.157252][ T10] worker_thread+0x587/0xd30 [ 57.157416][ T10] kthread+0x28a/0x350 [ 57.157550][ T10] ret_from_fork+0x31/0x70 [ 57.157713][ T10] ret_from_fork_asm+0x1a/0x30 [ 57.157879][ T10] } [ 57.157951][ T10] ... key at: [<ffffffff9fb591c0>] __key.15+0x0/0x40 [ 57.158226][ T10] [ 57.158226][ T10] the dependencies between the lock to be acquired [ 57.158227][ T10] and SOFTIRQ-irq-unsafe lock: [ 57.158582][ T10] -> (&p->alloc_lock){+.+.}-{2:2} { [ 57.158816][ T10] HARDIRQ-ON-W at: [ 57.158918][ T10] __lock_acquire+0x797/0x1570 [ 57.159092][ T10] lock_acquire.part.0+0xeb/0x330 [ 57.159259][ T10] _raw_spin_lock+0x30/0x40 [ 57.159425][ T10] set_mems_allowed+0x1d/0x210 [ 57.159591][ T10] kernel_init_freeable+0x72/0x310 [ 57.159756][ T10] kernel_init+0x20/0x200 [ 57.159920][ T10] ret_from_fork+0x31/0x70 [ 57.160087][ T10] ret_from_fork_asm+0x1a/0x30 [ 57.160252][ T10] SOFTIRQ-ON-W at: [ 57.160359][ T10] __lock_acquire+0x797/0x1570 [ 57.160525][ T10] lock_acquire.part.0+0xeb/0x330 [ 57.160690][ T10] _raw_spin_lock+0x30/0x40 [ 57.160856][ T10] set_mems_allowed+0x1d/0x210 [ 57.161101][ T10] kernel_init_freeable+0x72/0x310 [ 57.161265][ T10] kernel_init+0x20/0x200 [ 57.161434][ T10] ret_from_fork+0x31/0x70 [ 57.161601][ T10] ret_from_fork_asm+0x1a/0x30 [ 57.161874][ T10] INITIAL USE at: [ 57.161974][ T10] __lock_acquire+0x797/0x1570 [ 57.162139][ T10] lock_acquire.part.0+0xeb/0x330 [ 57.162304][ T10] _raw_spin_lock+0x30/0x40 [ 57.162469][ T10] set_mems_allowed+0x1d/0x210 [ 57.162637][ T10] kernel_init_freeable+0x72/0x310 [ 57.162805][ T10] kernel_init+0x20/0x200 [ 57.162970][ T10] ret_from_fork+0x31/0x70 [ 57.163138][ T10] ret_from_fork_asm+0x1a/0x30 [ 57.163304][ T10] } [ 57.163371][ T10] ... key at: [<ffffffff9eafed20>] __key.388+0x0/0x40 [ 57.163571][ T10] ... acquired at: [ 57.163669][ T10] check_prev_add+0x194/0xce0 [ 57.163806][ T10] validate_chain+0x71d/0x9b0 [ 57.163940][ T10] __lock_acquire+0xaf0/0x1570 [ 57.164149][ T10] lock_acquire.part.0+0xeb/0x330 [ 57.164279][ T10] _raw_spin_lock+0x30/0x40 [ 57.164411][ T10] __get_task_comm+0x27/0x70 [ 57.164547][ T10] ref_tracker_alloc+0x2ee/0x490 [ 57.164774][ T10] rt6_uncached_list_flush_dev+0x494/0x840 [ 57.164941][ T10] rt6_disable_ip+0xd9/0x140 [ 57.165079][ T10] addrconf_ifdown.isra.0+0x103/0x1560 [ 57.165213][ T10] addrconf_notify+0xd1/0xd60 [ 57.165345][ T10] notifier_call_chain+0xcd/0x150 [ 57.165476][ T10] dev_close_many+0x2d8/0x650 [ 57.165613][ T10] unregister_netdevice_many_notify+0x3d5/0x1190 [ 57.165777][ T10] default_device_exit_batch+0x234/0x2d0 [ 57.165941][ T10] cleanup_net+0x4f3/0xb60 [ 57.166072][ T10] process_one_work+0xe2c/0x1730 [ 57.166209][ T10] worker_thread+0x587/0xd30 [ 57.166341][ T10] kthread+0x28a/0x350 [ 57.166440][ T10] ret_from_fork+0x31/0x70 [ 57.166572][ T10] ret_from_fork_asm+0x1a/0x30 [ 57.166704][ T10] [ 57.166773][ T10] [ 57.166773][ T10] stack backtrace: [ 57.166936][ T10] CPU: 2 PID: 10 Comm: kworker/u16:0 Not tainted 6.9.0-rc1-virtme #1 [ 57.167215][ T10] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.3-0-ga6ed6b701f0a-prebuilt.qemu.org 04/01/2014 [ 57.167513][ T10] Workqueue: netns cleanup_net [ 57.167652][ T10] Call Trace: [ 57.167848][ T10] <TASK> [ 57.167918][ T10] dump_stack_lvl+0x82/0xd0 [ 57.168053][ T10] print_bad_irq_dependency+0x957/0xd40 [ 57.168188][ T10] ? __pfx_print_bad_irq_dependency+0x10/0x10 [ 57.168355][ T10] ? __pfx_usage_skip+0x10/0x10 [ 57.168490][ T10] ? __bfs+0x246/0x650 [ 57.168591][ T10] ? __pfx_usage_match+0x10/0x10 [ 57.168723][ T10] check_irq_usage+0x596/0x850 [ 57.168855][ T10] ? arch_stack_walk+0x8c/0xf0 [ 57.168989][ T10] ? __pfx_check_irq_usage+0x10/0x10 [ 57.169122][ T10] ? __bfs+0x246/0x650 [ 57.169223][ T10] ? __pfx_hlock_conflict+0x10/0x10 [ 57.169356][ T10] ? check_path.constprop.0+0x24/0x50 [ 57.169571][ T10] ? check_noncircular+0x14c/0x3e0 [ 57.169705][ T10] ? __pfx_check_noncircular+0x10/0x10 [ 57.169841][ T10] ? check_prev_add+0x194/0xce0 [ 57.169974][ T10] check_prev_add+0x194/0xce0 [ 57.170109][ T10] ? validate_chain+0x130/0x9b0 [ 57.170320][ T10] validate_chain+0x71d/0x9b0 [ 57.170459][ T10] ? mark_lock+0x38/0x3e0 [ 57.170561][ T10] ? __pfx_validate_chain+0x10/0x10 [ 57.170696][ T10] ? hlock_class+0x4e/0x130 [ 57.170910][ T10] ? mark_lock+0x38/0x3e0 [ 57.171012][ T10] __lock_acquire+0xaf0/0x1570 [ 57.171148][ T10] lock_acquire.part.0+0xeb/0x330 [ 57.171281][ T10] ? __get_task_comm+0x27/0x70 [ 57.171416][ T10] ? mark_lock+0x38/0x3e0 [ 57.171592][ T10] ? __pfx_lock_acquire.part.0+0x10/0x10 [ 57.171725][ T10] ? trace_lock_acquire+0x135/0x1c0 [ 57.171858][ T10] ? __get_task_comm+0x27/0x70 [ 57.171994][ T10] ? lock_acquire+0x32/0xc0 [ 57.172201][ T10] ? __get_task_comm+0x27/0x70 [ 57.172338][ T10] _raw_spin_lock+0x30/0x40 [ 57.172472][ T10] ? __get_task_comm+0x27/0x70 [ 57.172604][ T10] __get_task_comm+0x27/0x70 [ 57.172813][ T10] ref_tracker_alloc+0x2ee/0x490 [ 57.172948][ T10] ? __pfx_ref_tracker_alloc+0x10/0x10 [ 57.173080][ T10] ? __lock_release+0x103/0x460 [ 57.173214][ T10] ? rt6_uncached_list_flush_dev+0x494/0x840 [ 57.173459][ T10] ? rt6_disable_ip+0xd9/0x140 [ 57.173590][ T10] ? addrconf_ifdown.isra.0+0x103/0x1560 [ 57.173721][ T10] ? addrconf_notify+0xd1/0xd60 [ 57.173853][ T10] ? notifier_call_chain+0xcd/0x150 [ 57.173986][ T10] ? dev_close_many+0x2d8/0x650 [ 57.174192][ T10] ? unregister_netdevice_many_notify+0x3d5/0x1190 [ 57.174355][ T10] ? default_device_exit_batch+0x234/0x2d0 [ 57.174518][ T10] ? cleanup_net+0x4f3/0xb60 [ 57.174744][ T10] ? process_one_work+0xe2c/0x1730 [ 57.174879][ T10] ? worker_thread+0x587/0xd30 [ 57.175013][ T10] ? kthread+0x28a/0x350 [ 57.175115][ T10] ? ret_from_fork+0x31/0x70 [ 57.175249][ T10] ? ret_from_fork_asm+0x1a/0x30 [ 57.175385][ T10] ? in6_dev_get+0xcc/0x210 [ 57.175527][ T10] rt6_uncached_list_flush_dev+0x494/0x840 [ 57.175696][ T10] rt6_disable_ip+0xd9/0x140 [ 57.175832][ T10] ? __pfx_rt6_disable_ip+0x10/0x10 [ 57.175966][ T10] ? mark_lock+0x38/0x3e0 [ 57.176069][ T10] addrconf_ifdown.isra.0+0x103/0x1560 [ 57.176203][ T10] ? __try_to_del_timer_sync+0xe7/0x140 [ 57.176336][ T10] ? __pfx_addrconf_ifdown.isra.0+0x10/0x10 [ 57.176503][ T10] addrconf_notify+0xd1/0xd60 [ 57.176634][ T10] notifier_call_chain+0xcd/0x150 [ 57.176767][ T10] dev_close_many+0x2d8/0x650 [ 57.176902][ T10] ? __pfx_dev_close_many+0x10/0x10 [ 57.177115][ T10] ? default_device_exit_batch+0x81/0x2d0 [ 57.177247][ T10] ? trace_contention_end+0xdc/0x140 [ 57.177383][ T10] unregister_netdevice_many_notify+0x3d5/0x1190 [ 57.177559][ T10] ? mutex_is_locked+0x17/0x50 [ 57.177800][ T10] ? __pfx_unregister_netdevice_many_notify+0x10/0x10 [ 57.177981][ T10] ? __pfx_unregister_netdevice_queue+0x10/0x10 [ 57.178162][ T10] default_device_exit_batch+0x234/0x2d0 [ 57.178297][ T10] ? __pfx_default_device_exit_batch+0x10/0x10 [ 57.178563][ T10] ? ops_exit_list+0xb4/0x170 [ 57.178699][ T10] cleanup_net+0x4f3/0xb60 [ 57.178831][ T10] ? __pfx_lock_acquire.part.0+0x10/0x10 [ 57.178963][ T10] ? __pfx_cleanup_net+0x10/0x10 [ 57.179096][ T10] ? trace_lock_acquire+0x135/0x1c0 [ 57.179227][ T10] ? process_one_work+0xde2/0x1730 [ 57.179360][ T10] ? lock_acquire+0x32/0xc0 [ 57.179491][ T10] ? process_one_work+0xde2/0x1730 [ 57.179704][ T10] process_one_work+0xe2c/0x1730 [ 57.179836][ T10] ? __pfx___lock_release+0x10/0x10 [ 57.179969][ T10] ? __pfx_process_one_work+0x10/0x10 [ 57.180101][ T10] ? assign_work+0x16c/0x240 [ 57.180234][ T10] worker_thread+0x587/0xd30 [ 57.180367][ T10] ? __pfx_worker_thread+0x10/0x10 [ 57.180504][ T10] kthread+0x28a/0x350 [ 57.180603][ T10] ? __pfx_kthread+0x10/0x10 [ 57.180736][ T10] ret_from_fork+0x31/0x70 [ 57.180866][ T10] ? __pfx_kthread+0x10/0x10 [ 57.180995][ T10] ret_from_fork_asm+0x1a/0x30 [ 57.181128][ T10] </TASK>