[ 222.377969][ T74] [ 222.378070][ T74] ===================================================== [ 222.378239][ T74] WARNING: SOFTIRQ-safe -> SOFTIRQ-unsafe lock order detected [ 222.378446][ T74] 6.9.0-rc1-virtme #1 Not tainted [ 222.378581][ T74] ----------------------------------------------------- [ 222.378745][ T74] kworker/u16:1/74 [HC0[0]:SC0[2]:HE1:SE0] is trying to acquire: [ 222.378946][ T74] ffff88800508ac28 (&p->alloc_lock){+.+.}-{2:2}, at: __get_task_comm+0x27/0x70 [ 222.379197][ T74] [ 222.379197][ T74] and this task is already holding: [ 222.379394][ T74] ffff8880360bf218 (&ul->lock){+.-.}-{2:2}, at: rt6_uncached_list_flush_dev+0x138/0x840 [ 222.379646][ T74] which would create a new lock dependency: [ 222.379816][ T74] (&ul->lock){+.-.}-{2:2} -> (&p->alloc_lock){+.+.}-{2:2} [ 222.380026][ T74] [ 222.380026][ T74] but this new dependency connects a SOFTIRQ-irq-safe lock: [ 222.380258][ T74] (&ul->lock){+.-.}-{2:2} [ 222.380261][ T74] [ 222.380261][ T74] ... which became SOFTIRQ-irq-safe at: [ 222.380612][ T74] __lock_acquire+0x797/0x1570 [ 222.380751][ T74] lock_acquire.part.0+0xeb/0x330 [ 222.380883][ T74] _raw_spin_lock_bh+0x38/0x50 [ 222.381019][ T74] rt6_uncached_list_del+0x77/0x200 [ 222.381166][ T74] ip6_dst_destroy+0x74/0x1e0 [ 222.381298][ T74] dst_destroy+0xbc/0x370 [ 222.381458][ T74] rcu_do_batch+0x3c0/0xfb0 [ 222.381592][ T74] rcu_core+0x2be/0x500 [ 222.381695][ T74] __do_softirq+0x1f8/0x5df [ 222.381941][ T74] irq_exit_rcu+0x97/0xc0 [ 222.382094][ T74] sysvec_apic_timer_interrupt+0x75/0x80 [ 222.382234][ T74] asm_sysvec_apic_timer_interrupt+0x1a/0x20 [ 222.382426][ T74] default_idle+0xf/0x20 [ 222.382631][ T74] default_idle_call+0x6d/0xb0 [ 222.382791][ T74] cpuidle_idle_call+0x1f4/0x280 [ 222.382926][ T74] do_idle+0xf9/0x160 [ 222.383048][ T74] cpu_startup_entry+0x54/0x60 [ 222.383273][ T74] rest_init+0x14f/0x260 [ 222.383397][ T74] start_kernel+0x318/0x3d0 [ 222.383551][ T74] x86_64_start_reservations+0x18/0x30 [ 222.383706][ T74] x86_64_start_kernel+0xba/0x110 [ 222.383833][ T74] common_startup_64+0x12c/0x138 [ 222.383963][ T74] [ 222.383963][ T74] to a SOFTIRQ-irq-unsafe lock: [ 222.384157][ T74] (&p->alloc_lock){+.+.}-{2:2} [ 222.384162][ T74] [ 222.384162][ T74] ... which became SOFTIRQ-irq-unsafe at: [ 222.384545][ T74] ... [ 222.384547][ T74] __lock_acquire+0x797/0x1570 [ 222.384909][ T74] lock_acquire.part.0+0xeb/0x330 [ 222.385065][ T74] _raw_spin_lock+0x30/0x40 [ 222.385198][ T74] set_mems_allowed+0x1d/0x210 [ 222.385422][ T74] kernel_init_freeable+0x72/0x310 [ 222.385597][ T74] kernel_init+0x20/0x200 [ 222.385730][ T74] ret_from_fork+0x31/0x70 [ 222.385869][ T74] ret_from_fork_asm+0x1a/0x30 [ 222.386102][ T74] [ 222.386102][ T74] other info that might help us debug this: [ 222.386102][ T74] [ 222.386371][ T74] Possible interrupt unsafe locking scenario: [ 222.386371][ T74] [ 222.386683][ T74] CPU0 CPU1 [ 222.386833][ T74] ---- ---- [ 222.386971][ T74] lock(&p->alloc_lock); [ 222.387072][ T74] local_irq_disable(); [ 222.387248][ T74] lock(&ul->lock); [ 222.387518][ T74] lock(&p->alloc_lock); [ 222.387699][ T74] [ 222.387804][ T74] lock(&ul->lock); [ 222.387907][ T74] [ 222.387907][ T74] *** DEADLOCK *** [ 222.387907][ T74] [ 222.388268][ T74] 5 locks held by kworker/u16:1/74: [ 222.388403][ T74] #0: ffff88800190a948 ((wq_completion)netns){+.+.}-{0:0}, at: process_one_work+0xda6/0x1730 [ 222.388733][ T74] #1: ffffc900004ffda0 (net_cleanup_work){+.+.}-{0:0}, at: process_one_work+0xde2/0x1730 [ 222.388980][ T74] #2: ffffffffa0b9bc50 (pernet_ops_rwsem){++++}-{3:3}, at: cleanup_net+0xbc/0xb60 [ 222.389220][ T74] #3: ffffffffa0bb7208 (rtnl_mutex){+.+.}-{3:3}, at: default_device_exit_batch+0x81/0x2d0 [ 222.389580][ T74] #4: ffff8880360bf218 (&ul->lock){+.-.}-{2:2}, at: rt6_uncached_list_flush_dev+0x138/0x840 [ 222.389869][ T74] [ 222.389869][ T74] the dependencies between SOFTIRQ-irq-safe lock and the holding lock: [ 222.390137][ T74] -> (&ul->lock){+.-.}-{2:2} { [ 222.390368][ T74] HARDIRQ-ON-W at: [ 222.390499][ T74] __lock_acquire+0x797/0x1570 [ 222.390673][ T74] lock_acquire.part.0+0xeb/0x330 [ 222.390875][ T74] _raw_spin_lock_bh+0x38/0x50 [ 222.391126][ T74] rt6_uncached_list_add+0x55/0x1b0 [ 222.391382][ T74] icmp6_dst_alloc+0x2c0/0x450 [ 222.391639][ T74] mld_sendpack+0x529/0xbc0 [ 222.391901][ T74] mld_ifc_work+0x32/0x1f0 [ 222.392165][ T74] process_one_work+0xe2c/0x1730 [ 222.392411][ T74] worker_thread+0x587/0xd30 [ 222.392670][ T74] kthread+0x28a/0x350 [ 222.392880][ T74] ret_from_fork+0x31/0x70 [ 222.393137][ T74] ret_from_fork_asm+0x1a/0x30 [ 222.393400][ T74] IN-SOFTIRQ-W at: [ 222.393809][ T74] __lock_acquire+0x797/0x1570 [ 222.394050][ T74] lock_acquire.part.0+0xeb/0x330 [ 222.394322][ T74] _raw_spin_lock_bh+0x38/0x50 [ 222.394722][ T74] rt6_uncached_list_del+0x77/0x200 [ 222.395080][ T74] ip6_dst_destroy+0x74/0x1e0 [ 222.395290][ T74] dst_destroy+0xbc/0x370 [ 222.395508][ T74] rcu_do_batch+0x3c0/0xfb0 [ 222.395701][ T74] rcu_core+0x2be/0x500 [ 222.395985][ T74] __do_softirq+0x1f8/0x5df [ 222.396176][ T74] irq_exit_rcu+0x97/0xc0 [ 222.396346][ T74] sysvec_apic_timer_interrupt+0x75/0x80 [ 222.396653][ T74] asm_sysvec_apic_timer_interrupt+0x1a/0x20 [ 222.396857][ T74] default_idle+0xf/0x20 [ 222.397032][ T74] default_idle_call+0x6d/0xb0 [ 222.397359][ T74] cpuidle_idle_call+0x1f4/0x280 [ 222.397533][ T74] do_idle+0xf9/0x160 [ 222.397679][ T74] cpu_startup_entry+0x54/0x60 [ 222.397927][ T74] rest_init+0x14f/0x260 [ 222.398110][ T74] start_kernel+0x318/0x3d0 [ 222.398278][ T74] x86_64_start_reservations+0x18/0x30 [ 222.398456][ T74] x86_64_start_kernel+0xba/0x110 [ 222.398726][ T74] common_startup_64+0x12c/0x138 [ 222.398911][ T74] INITIAL USE at: [ 222.399016][ T74] __lock_acquire+0x797/0x1570 [ 222.399301][ T74] lock_acquire.part.0+0xeb/0x330 [ 222.399496][ T74] _raw_spin_lock_bh+0x38/0x50 [ 222.399664][ T74] rt6_uncached_list_add+0x55/0x1b0 [ 222.399833][ T74] icmp6_dst_alloc+0x2c0/0x450 [ 222.400007][ T74] mld_sendpack+0x529/0xbc0 [ 222.400267][ T74] mld_ifc_work+0x32/0x1f0 [ 222.400471][ T74] process_one_work+0xe2c/0x1730 [ 222.400739][ T74] worker_thread+0x587/0xd30 [ 222.400937][ T74] kthread+0x28a/0x350 [ 222.401084][ T74] ret_from_fork+0x31/0x70 [ 222.401274][ T74] ret_from_fork_asm+0x1a/0x30 [ 222.401466][ T74] } [ 222.401536][ T74] ... key at: [] __key.15+0x0/0x40 [ 222.401787][ T74] [ 222.401787][ T74] the dependencies between the lock to be acquired [ 222.401789][ T74] and SOFTIRQ-irq-unsafe lock: [ 222.402361][ T74] -> (&p->alloc_lock){+.+.}-{2:2} { [ 222.402515][ T74] HARDIRQ-ON-W at: [ 222.402653][ T74] __lock_acquire+0x797/0x1570 [ 222.402825][ T74] lock_acquire.part.0+0xeb/0x330 [ 222.403003][ T74] _raw_spin_lock+0x30/0x40 [ 222.403184][ T74] set_mems_allowed+0x1d/0x210 [ 222.403354][ T74] kernel_init_freeable+0x72/0x310 [ 222.403546][ T74] kernel_init+0x20/0x200 [ 222.403713][ T74] ret_from_fork+0x31/0x70 [ 222.403891][ T74] ret_from_fork_asm+0x1a/0x30 [ 222.404161][ T74] SOFTIRQ-ON-W at: [ 222.404298][ T74] __lock_acquire+0x797/0x1570 [ 222.404593][ T74] lock_acquire.part.0+0xeb/0x330 [ 222.404791][ T74] _raw_spin_lock+0x30/0x40 [ 222.404963][ T74] set_mems_allowed+0x1d/0x210 [ 222.405230][ T74] kernel_init_freeable+0x72/0x310 [ 222.405421][ T74] kernel_init+0x20/0x200 [ 222.405719][ T74] ret_from_fork+0x31/0x70 [ 222.405906][ T74] ret_from_fork_asm+0x1a/0x30 [ 222.406111][ T74] INITIAL USE at: [ 222.406216][ T74] __lock_acquire+0x797/0x1570 [ 222.406514][ T74] lock_acquire.part.0+0xeb/0x330 [ 222.406682][ T74] _raw_spin_lock+0x30/0x40 [ 222.406864][ T74] set_mems_allowed+0x1d/0x210 [ 222.407038][ T74] kernel_init_freeable+0x72/0x310 [ 222.407308][ T74] kernel_init+0x20/0x200 [ 222.407509][ T74] ret_from_fork+0x31/0x70 [ 222.407675][ T74] ret_from_fork_asm+0x1a/0x30 [ 222.407919][ T74] } [ 222.407988][ T74] ... key at: [] __key.388+0x0/0x40 [ 222.408185][ T74] ... acquired at: [ 222.408284][ T74] check_prev_add+0x194/0xce0 [ 222.408505][ T74] validate_chain+0x71d/0x9b0 [ 222.408640][ T74] __lock_acquire+0xaf0/0x1570 [ 222.408772][ T74] lock_acquire.part.0+0xeb/0x330 [ 222.408909][ T74] _raw_spin_lock+0x30/0x40 [ 222.409043][ T74] __get_task_comm+0x27/0x70 [ 222.409255][ T74] ref_tracker_alloc+0x2ee/0x490 [ 222.409389][ T74] rt6_uncached_list_flush_dev+0x494/0x840 [ 222.409573][ T74] rt6_disable_ip+0xd9/0x140 [ 222.409705][ T74] addrconf_ifdown.isra.0+0x103/0x1560 [ 222.409913][ T74] addrconf_notify+0xd1/0xd60 [ 222.410045][ T74] notifier_call_chain+0xcd/0x150 [ 222.410180][ T74] dev_close_many+0x2d8/0x650 [ 222.410316][ T74] unregister_netdevice_many_notify+0x3d5/0x1190 [ 222.410634][ T74] default_device_exit_batch+0x234/0x2d0 [ 222.410799][ T74] cleanup_net+0x4f3/0xb60 [ 222.410932][ T74] process_one_work+0xe2c/0x1730 [ 222.411065][ T74] worker_thread+0x587/0xd30 [ 222.411273][ T74] kthread+0x28a/0x350 [ 222.411373][ T74] ret_from_fork+0x31/0x70 [ 222.411520][ T74] ret_from_fork_asm+0x1a/0x30 [ 222.411658][ T74] [ 222.411724][ T74] [ 222.411724][ T74] stack backtrace: [ 222.411963][ T74] CPU: 0 PID: 74 Comm: kworker/u16:1 Not tainted 6.9.0-rc1-virtme #1 [ 222.412163][ T74] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.3-0-ga6ed6b701f0a-prebuilt.qemu.org 04/01/2014 [ 222.412548][ T74] Workqueue: netns cleanup_net [ 222.412690][ T74] Call Trace: [ 222.412803][ T74] [ 222.412876][ T74] dump_stack_lvl+0x82/0xd0 [ 222.413014][ T74] print_bad_irq_dependency+0x957/0xd40 [ 222.413175][ T74] ? __pfx_print_bad_irq_dependency+0x10/0x10 [ 222.413345][ T74] ? __pfx_usage_skip+0x10/0x10 [ 222.413601][ T74] ? __bfs+0x246/0x650 [ 222.413714][ T74] ? __pfx_usage_match+0x10/0x10 [ 222.413850][ T74] check_irq_usage+0x596/0x850 [ 222.413989][ T74] ? arch_stack_walk+0x8c/0xf0 [ 222.414240][ T74] ? __pfx_check_irq_usage+0x10/0x10 [ 222.414388][ T74] ? __bfs+0x246/0x650 [ 222.414531][ T74] ? __pfx_hlock_conflict+0x10/0x10 [ 222.414666][ T74] ? check_path.constprop.0+0x24/0x50 [ 222.414800][ T74] ? check_noncircular+0x14c/0x3e0 [ 222.414930][ T74] ? __pfx_check_noncircular+0x10/0x10 [ 222.415068][ T74] ? check_prev_add+0x194/0xce0 [ 222.415199][ T74] check_prev_add+0x194/0xce0 [ 222.415335][ T74] ? validate_chain+0x130/0x9b0 [ 222.415472][ T74] validate_chain+0x71d/0x9b0 [ 222.415607][ T74] ? mark_lock+0x38/0x3e0 [ 222.415784][ T74] ? __pfx_validate_chain+0x10/0x10 [ 222.415928][ T74] ? hlock_class+0x4e/0x130 [ 222.416143][ T74] ? mark_lock+0x38/0x3e0 [ 222.416249][ T74] __lock_acquire+0xaf0/0x1570 [ 222.416406][ T74] lock_acquire.part.0+0xeb/0x330 [ 222.416630][ T74] ? __get_task_comm+0x27/0x70 [ 222.416777][ T74] ? mark_lock+0x38/0x3e0 [ 222.416879][ T74] ? __pfx_lock_acquire.part.0+0x10/0x10 [ 222.417115][ T74] ? trace_lock_acquire+0x135/0x1c0 [ 222.417249][ T74] ? __get_task_comm+0x27/0x70 [ 222.417385][ T74] ? lock_acquire+0x32/0xc0 [ 222.417552][ T74] ? __get_task_comm+0x27/0x70 [ 222.417692][ T74] _raw_spin_lock+0x30/0x40 [ 222.417926][ T74] ? __get_task_comm+0x27/0x70 [ 222.418071][ T74] __get_task_comm+0x27/0x70 [ 222.418208][ T74] ref_tracker_alloc+0x2ee/0x490 [ 222.418342][ T74] ? __pfx_ref_tracker_alloc+0x10/0x10 [ 222.418502][ T74] ? __lock_release+0x103/0x460 [ 222.418724][ T74] ? rt6_uncached_list_flush_dev+0x494/0x840 [ 222.418906][ T74] ? rt6_disable_ip+0xd9/0x140 [ 222.419041][ T74] ? addrconf_ifdown.isra.0+0x103/0x1560 [ 222.419190][ T74] ? addrconf_notify+0xd1/0xd60 [ 222.419487][ T74] ? notifier_call_chain+0xcd/0x150 [ 222.419636][ T74] ? dev_close_many+0x2d8/0x650 [ 222.419772][ T74] ? unregister_netdevice_many_notify+0x3d5/0x1190 [ 222.420054][ T74] ? default_device_exit_batch+0x234/0x2d0 [ 222.420231][ T74] ? cleanup_net+0x4f3/0xb60 [ 222.420383][ T74] ? process_one_work+0xe2c/0x1730 [ 222.420615][ T74] ? worker_thread+0x587/0xd30 [ 222.420768][ T74] ? kthread+0x28a/0x350 [ 222.420874][ T74] ? ret_from_fork+0x31/0x70 [ 222.421019][ T74] ? ret_from_fork_asm+0x1a/0x30 [ 222.421173][ T74] ? in6_dev_get+0xcc/0x210 [ 222.421312][ T74] rt6_uncached_list_flush_dev+0x494/0x840 [ 222.421608][ T74] rt6_disable_ip+0xd9/0x140 [ 222.421765][ T74] ? __pfx_rt6_disable_ip+0x10/0x10 [ 222.421903][ T74] ? mark_lock+0x38/0x3e0 [ 222.422005][ T74] addrconf_ifdown.isra.0+0x103/0x1560 [ 222.422156][ T74] ? __try_to_del_timer_sync+0xe7/0x140 [ 222.422391][ T74] ? __pfx_addrconf_ifdown.isra.0+0x10/0x10 [ 222.422595][ T74] addrconf_notify+0xd1/0xd60 [ 222.422733][ T74] notifier_call_chain+0xcd/0x150 [ 222.422893][ T74] dev_close_many+0x2d8/0x650 [ 222.423032][ T74] ? __pfx_dev_close_many+0x10/0x10 [ 222.423166][ T74] ? default_device_exit_batch+0x81/0x2d0 [ 222.423319][ T74] ? trace_contention_end+0xdc/0x140 [ 222.423468][ T74] unregister_netdevice_many_notify+0x3d5/0x1190 [ 222.423746][ T74] ? mutex_is_locked+0x17/0x50 [ 222.423897][ T74] ? __pfx_unregister_netdevice_many_notify+0x10/0x10 [ 222.424067][ T74] ? __pfx_unregister_netdevice_queue+0x10/0x10 [ 222.424340][ T74] default_device_exit_batch+0x234/0x2d0 [ 222.424486][ T74] ? __pfx_default_device_exit_batch+0x10/0x10 [ 222.424680][ T74] ? ops_exit_list+0xb4/0x170 [ 222.424817][ T74] cleanup_net+0x4f3/0xb60 [ 222.425061][ T74] ? __pfx_lock_acquire.part.0+0x10/0x10 [ 222.425214][ T74] ? __pfx_cleanup_net+0x10/0x10 [ 222.425350][ T74] ? trace_lock_acquire+0x135/0x1c0 [ 222.425523][ T74] ? process_one_work+0xde2/0x1730 [ 222.425739][ T74] ? lock_acquire+0x32/0xc0 [ 222.425952][ T74] ? process_one_work+0xde2/0x1730 [ 222.426101][ T74] process_one_work+0xe2c/0x1730 [ 222.426235][ T74] ? __pfx___lock_release+0x10/0x10 [ 222.426385][ T74] ? __pfx_process_one_work+0x10/0x10 [ 222.426631][ T74] ? assign_work+0x16c/0x240 [ 222.426860][ T74] worker_thread+0x587/0xd30 [ 222.427073][ T74] ? lockdep_hardirqs_on_prepare.part.0+0x1af/0x370 [ 222.427251][ T74] ? __pfx_worker_thread+0x10/0x10 [ 222.427385][ T74] ? __pfx_worker_thread+0x10/0x10 [ 222.427571][ T74] kthread+0x28a/0x350 [ 222.427695][ T74] ? __pfx_kthread+0x10/0x10 [ 222.427832][ T74] ret_from_fork+0x31/0x70 [ 222.428040][ T74] ? __pfx_kthread+0x10/0x10 [ 222.428184][ T74] ret_from_fork_asm+0x1a/0x30 [ 222.428321][ T74]