[ 94.854108][ T539] ip (539) used greatest stack depth: 23552 bytes left [ 130.070866][ T10] [ 130.070983][ T10] ===================================================== [ 130.071174][ T10] WARNING: SOFTIRQ-safe -> SOFTIRQ-unsafe lock order detected [ 130.071399][ T10] 6.9.0-rc1-virtme #1 Not tainted [ 130.071553][ T10] ----------------------------------------------------- [ 130.071744][ T10] kworker/u16:0/10 [HC0[0]:SC0[2]:HE1:SE0] is trying to acquire: [ 130.071961][ T10] ffff888001a70968 (&p->alloc_lock){+.+.}-{2:2}, at: __get_task_comm+0x27/0x70 [ 130.072227][ T10] [ 130.072227][ T10] and this task is already holding: [ 130.072434][ T10] ffff88802f7bf218 (&ul->lock){+.-.}-{2:2}, at: rt6_uncached_list_flush_dev+0x138/0x840 [ 130.072699][ T10] which would create a new lock dependency: [ 130.072893][ T10] (&ul->lock){+.-.}-{2:2} -> (&p->alloc_lock){+.+.}-{2:2} [ 130.073198][ T10] [ 130.073198][ T10] but this new dependency connects a SOFTIRQ-irq-safe lock: [ 130.073447][ T10] (&ul->lock){+.-.}-{2:2} [ 130.073451][ T10] [ 130.073451][ T10] ... which became SOFTIRQ-irq-safe at: [ 130.073809][ T10] __lock_acquire+0x797/0x1570 [ 130.073963][ T10] lock_acquire.part.0+0xeb/0x330 [ 130.074107][ T10] _raw_spin_lock_bh+0x38/0x50 [ 130.074253][ T10] rt6_uncached_list_del+0x77/0x200 [ 130.074395][ T10] ip6_dst_destroy+0x74/0x1e0 [ 130.074540][ T10] dst_destroy+0xbc/0x370 [ 130.074684][ T10] rcu_do_batch+0x3c0/0xfb0 [ 130.074834][ T10] rcu_core+0x2be/0x500 [ 130.074948][ T10] __do_softirq+0x1f8/0x5df [ 130.075096][ T10] irq_exit_rcu+0x97/0xc0 [ 130.075246][ T10] sysvec_apic_timer_interrupt+0x75/0x80 [ 130.075395][ T10] asm_sysvec_apic_timer_interrupt+0x1a/0x20 [ 130.075583][ T10] default_idle+0xf/0x20 [ 130.075692][ T10] default_idle_call+0x6d/0xb0 [ 130.075838][ T10] cpuidle_idle_call+0x1f4/0x280 [ 130.075986][ T10] do_idle+0xf9/0x160 [ 130.076098][ T10] cpu_startup_entry+0x54/0x60 [ 130.076236][ T10] start_secondary+0x21c/0x2b0 [ 130.076389][ T10] common_startup_64+0x12c/0x138 [ 130.076542][ T10] [ 130.076542][ T10] to a SOFTIRQ-irq-unsafe lock: [ 130.076722][ T10] (&p->alloc_lock){+.+.}-{2:2} [ 130.076726][ T10] [ 130.076726][ T10] ... which became SOFTIRQ-irq-unsafe at: [ 130.077090][ T10] ... [ 130.077092][ T10] __lock_acquire+0x797/0x1570 [ 130.077315][ T10] lock_acquire.part.0+0xeb/0x330 [ 130.077460][ T10] _raw_spin_lock+0x30/0x40 [ 130.077609][ T10] set_mems_allowed+0x1d/0x210 [ 130.077759][ T10] kernel_init_freeable+0x72/0x310 [ 130.077911][ T10] kernel_init+0x20/0x200 [ 130.078058][ T10] ret_from_fork+0x31/0x70 [ 130.078206][ T10] ret_from_fork_asm+0x1a/0x30 [ 130.078360][ T10] [ 130.078360][ T10] other info that might help us debug this: [ 130.078360][ T10] [ 130.078657][ T10] Possible interrupt unsafe locking scenario: [ 130.078657][ T10] [ 130.078880][ T10] CPU0 CPU1 [ 130.079031][ T10] ---- ---- [ 130.079178][ T10] lock(&p->alloc_lock); [ 130.079309][ T10] local_irq_disable(); [ 130.079504][ T10] lock(&ul->lock); [ 130.079693][ T10] lock(&p->alloc_lock); [ 130.079875][ T10] [ 130.079990][ T10] lock(&ul->lock); [ 130.080103][ T10] [ 130.080103][ T10] *** DEADLOCK *** [ 130.080103][ T10] [ 130.080331][ T10] 5 locks held by kworker/u16:0/10: [ 130.080478][ T10] #0: ffff88800190a948 ((wq_completion)netns){+.+.}-{0:0}, at: process_one_work+0xda6/0x1730 [ 130.080786][ T10] #1: ffffc900000afda0 (net_cleanup_work){+.+.}-{0:0}, at: process_one_work+0xde2/0x1730 [ 130.081055][ T10] #2: ffffffffb9b9bc50 (pernet_ops_rwsem){++++}-{3:3}, at: cleanup_net+0xbc/0xb60 [ 130.081419][ T10] #3: ffffffffb9bb7208 (rtnl_mutex){+.+.}-{3:3}, at: default_device_exit_batch+0x81/0x2d0 [ 130.081723][ T10] #4: ffff88802f7bf218 (&ul->lock){+.-.}-{2:2}, at: rt6_uncached_list_flush_dev+0x138/0x840 [ 130.082024][ T10] [ 130.082024][ T10] the dependencies between SOFTIRQ-irq-safe lock and the holding lock: [ 130.082398][ T10] -> (&ul->lock){+.-.}-{2:2} { [ 130.082558][ T10] HARDIRQ-ON-W at: [ 130.082679][ T10] __lock_acquire+0x797/0x1570 [ 130.082869][ T10] lock_acquire.part.0+0xeb/0x330 [ 130.083218][ T10] _raw_spin_lock_bh+0x38/0x50 [ 130.083402][ T10] rt6_uncached_list_add+0x55/0x1b0 [ 130.083584][ T10] icmp6_dst_alloc+0x2c0/0x450 [ 130.083766][ T10] mld_sendpack+0x529/0xbc0 [ 130.084035][ T10] mld_ifc_work+0x32/0x1f0 [ 130.084222][ T10] process_one_work+0xe2c/0x1730 [ 130.084408][ T10] worker_thread+0x587/0xd30 [ 130.084675][ T10] kthread+0x28a/0x350 [ 130.084822][ T10] ret_from_fork+0x31/0x70 [ 130.085008][ T10] ret_from_fork_asm+0x1a/0x30 [ 130.085192][ T10] IN-SOFTIRQ-W at: [ 130.085378][ T10] __lock_acquire+0x797/0x1570 [ 130.085560][ T10] lock_acquire.part.0+0xeb/0x330 [ 130.085747][ T10] _raw_spin_lock_bh+0x38/0x50 [ 130.086027][ T10] rt6_uncached_list_del+0x77/0x200 [ 130.086217][ T10] ip6_dst_destroy+0x74/0x1e0 [ 130.086406][ T10] dst_destroy+0xbc/0x370 [ 130.086593][ T10] rcu_do_batch+0x3c0/0xfb0 [ 130.086779][ T10] rcu_core+0x2be/0x500 [ 130.086964][ T10] __do_softirq+0x1f8/0x5df [ 130.087149][ T10] irq_exit_rcu+0x97/0xc0 [ 130.087334][ T10] sysvec_apic_timer_interrupt+0x75/0x80 [ 130.087555][ T10] asm_sysvec_apic_timer_interrupt+0x1a/0x20 [ 130.087789][ T10] default_idle+0xf/0x20 [ 130.088060][ T10] default_idle_call+0x6d/0xb0 [ 130.088246][ T10] cpuidle_idle_call+0x1f4/0x280 [ 130.088432][ T10] do_idle+0xf9/0x160 [ 130.088585][ T10] cpu_startup_entry+0x54/0x60 [ 130.088775][ T10] start_secondary+0x21c/0x2b0 [ 130.088962][ T10] common_startup_64+0x12c/0x138 [ 130.089238][ T10] INITIAL USE at: [ 130.089353][ T10] __lock_acquire+0x797/0x1570 [ 130.089633][ T10] lock_acquire.part.0+0xeb/0x330 [ 130.089820][ T10] _raw_spin_lock_bh+0x38/0x50 [ 130.090006][ T10] rt6_uncached_list_add+0x55/0x1b0 [ 130.090277][ T10] icmp6_dst_alloc+0x2c0/0x450 [ 130.090469][ T10] mld_sendpack+0x529/0xbc0 [ 130.090654][ T10] mld_ifc_work+0x32/0x1f0 [ 130.090926][ T10] process_one_work+0xe2c/0x1730 [ 130.091116][ T10] worker_thread+0x587/0xd30 [ 130.091303][ T10] kthread+0x28a/0x350 [ 130.091457][ T10] ret_from_fork+0x31/0x70 [ 130.091651][ T10] ret_from_fork_asm+0x1a/0x30 [ 130.091838][ T10] } [ 130.091917][ T10] ... key at: [] __key.15+0x0/0x40 [ 130.092148][ T10] [ 130.092148][ T10] the dependencies between the lock to be acquired [ 130.092149][ T10] and SOFTIRQ-irq-unsafe lock: [ 130.092637][ T10] -> (&p->alloc_lock){+.+.}-{2:2} { [ 130.092893][ T10] HARDIRQ-ON-W at: [ 130.093013][ T10] __lock_acquire+0x797/0x1570 [ 130.093200][ T10] lock_acquire.part.0+0xeb/0x330 [ 130.093387][ T10] _raw_spin_lock+0x30/0x40 [ 130.093574][ T10] set_mems_allowed+0x1d/0x210 [ 130.093848][ T10] kernel_init_freeable+0x72/0x310 [ 130.094034][ T10] kernel_init+0x20/0x200 [ 130.094219][ T10] ret_from_fork+0x31/0x70 [ 130.094495][ T10] ret_from_fork_asm+0x1a/0x30 [ 130.094680][ T10] SOFTIRQ-ON-W at: [ 130.094790][ T10] __lock_acquire+0x797/0x1570 [ 130.095083][ T10] lock_acquire.part.0+0xeb/0x330 [ 130.095269][ T10] _raw_spin_lock+0x30/0x40 [ 130.095462][ T10] set_mems_allowed+0x1d/0x210 [ 130.095650][ T10] kernel_init_freeable+0x72/0x310 [ 130.095841][ T10] kernel_init+0x20/0x200 [ 130.096034][ T10] ret_from_fork+0x31/0x70 [ 130.096228][ T10] ret_from_fork_asm+0x1a/0x30 [ 130.096415][ T10] INITIAL USE at: [ 130.096528][ T10] __lock_acquire+0x797/0x1570 [ 130.096718][ T10] lock_acquire.part.0+0xeb/0x330 [ 130.097011][ T10] _raw_spin_lock+0x30/0x40 [ 130.097203][ T10] set_mems_allowed+0x1d/0x210 [ 130.097397][ T10] kernel_init_freeable+0x72/0x310 [ 130.097581][ T10] kernel_init+0x20/0x200 [ 130.097776][ T10] ret_from_fork+0x31/0x70 [ 130.097968][ T10] ret_from_fork_asm+0x1a/0x30 [ 130.098163][ T10] } [ 130.098240][ T10] ... key at: [] __key.388+0x0/0x40 [ 130.098467][ T10] ... acquired at: [ 130.098579][ T10] check_prev_add+0x194/0xce0 [ 130.098810][ T10] validate_chain+0x71d/0x9b0 [ 130.098963][ T10] __lock_acquire+0xaf0/0x1570 [ 130.099119][ T10] lock_acquire.part.0+0xeb/0x330 [ 130.099279][ T10] _raw_spin_lock+0x30/0x40 [ 130.099600][ T10] __get_task_comm+0x27/0x70 [ 130.099749][ T10] ref_tracker_alloc+0x2ee/0x490 [ 130.099903][ T10] rt6_uncached_list_flush_dev+0x494/0x840 [ 130.100091][ T10] rt6_disable_ip+0xd9/0x140 [ 130.100243][ T10] addrconf_ifdown.isra.0+0x103/0x1560 [ 130.100400][ T10] addrconf_notify+0xd1/0xd60 [ 130.100641][ T10] notifier_call_chain+0xcd/0x150 [ 130.100790][ T10] dev_close_many+0x2d8/0x650 [ 130.100947][ T10] unregister_netdevice_many_notify+0x3d5/0x1190 [ 130.101132][ T10] default_device_exit_batch+0x234/0x2d0 [ 130.101319][ T10] cleanup_net+0x4f3/0xb60 [ 130.101649][ T10] process_one_work+0xe2c/0x1730 [ 130.101801][ T10] worker_thread+0x587/0xd30 [ 130.101946][ T10] kthread+0x28a/0x350 [ 130.102062][ T10] ret_from_fork+0x31/0x70 [ 130.102215][ T10] ret_from_fork_asm+0x1a/0x30 [ 130.102449][ T10] [ 130.102530][ T10] [ 130.102530][ T10] stack backtrace: [ 130.102796][ T10] CPU: 1 PID: 10 Comm: kworker/u16:0 Not tainted 6.9.0-rc1-virtme #1 [ 130.103021][ T10] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.3-0-ga6ed6b701f0a-prebuilt.qemu.org 04/01/2014 [ 130.103345][ T10] Workqueue: netns cleanup_net [ 130.103499][ T10] Call Trace: [ 130.103617][ T10] [ 130.103696][ T10] dump_stack_lvl+0x82/0xd0 [ 130.103931][ T10] print_bad_irq_dependency+0x957/0xd40 [ 130.104080][ T10] ? __pfx_print_bad_irq_dependency+0x10/0x10 [ 130.104272][ T10] ? __pfx_usage_skip+0x10/0x10 [ 130.104420][ T10] ? __bfs+0x246/0x650 [ 130.104610][ T10] ? __pfx_usage_match+0x10/0x10 [ 130.104758][ T10] check_irq_usage+0x596/0x850 [ 130.104904][ T10] ? arch_stack_walk+0x8c/0xf0 [ 130.105057][ T10] ? __pfx_check_irq_usage+0x10/0x10 [ 130.105284][ T10] ? __bfs+0x246/0x650 [ 130.105394][ T10] ? __pfx_hlock_conflict+0x10/0x10 [ 130.105538][ T10] ? check_path.constprop.0+0x24/0x50 [ 130.105692][ T10] ? check_noncircular+0x14c/0x3e0 [ 130.105842][ T10] ? __pfx_check_noncircular+0x10/0x10 [ 130.106097][ T10] ? check_prev_add+0x194/0xce0 [ 130.106244][ T10] check_prev_add+0x194/0xce0 [ 130.106398][ T10] ? validate_chain+0x130/0x9b0 [ 130.106547][ T10] validate_chain+0x71d/0x9b0 [ 130.106700][ T10] ? mark_lock+0x38/0x3e0 [ 130.106810][ T10] ? __pfx_validate_chain+0x10/0x10 [ 130.106957][ T10] ? hlock_class+0x4e/0x130 [ 130.107106][ T10] ? mark_lock+0x38/0x3e0 [ 130.107217][ T10] __lock_acquire+0xaf0/0x1570 [ 130.107372][ T10] lock_acquire.part.0+0xeb/0x330 [ 130.107519][ T10] ? __get_task_comm+0x27/0x70 [ 130.107674][ T10] ? mark_lock+0x38/0x3e0 [ 130.107785][ T10] ? __pfx_lock_acquire.part.0+0x10/0x10 [ 130.108028][ T10] ? trace_lock_acquire+0x135/0x1c0 [ 130.108178][ T10] ? __get_task_comm+0x27/0x70 [ 130.108326][ T10] ? lock_acquire+0x32/0xc0 [ 130.108480][ T10] ? __get_task_comm+0x27/0x70 [ 130.108629][ T10] _raw_spin_lock+0x30/0x40 [ 130.108779][ T10] ? __get_task_comm+0x27/0x70 [ 130.108926][ T10] __get_task_comm+0x27/0x70 [ 130.109165][ T10] ref_tracker_alloc+0x2ee/0x490 [ 130.109326][ T10] ? __pfx_ref_tracker_alloc+0x10/0x10 [ 130.109552][ T10] ? __lock_release+0x103/0x460 [ 130.109706][ T10] ? rt6_uncached_list_flush_dev+0x494/0x840 [ 130.109987][ T10] ? rt6_disable_ip+0xd9/0x140 [ 130.110143][ T10] ? addrconf_ifdown.isra.0+0x103/0x1560 [ 130.110294][ T10] ? addrconf_notify+0xd1/0xd60 [ 130.110446][ T10] ? notifier_call_chain+0xcd/0x150 [ 130.110596][ T10] ? dev_close_many+0x2d8/0x650 [ 130.110750][ T10] ? unregister_netdevice_many_notify+0x3d5/0x1190 [ 130.110945][ T10] ? default_device_exit_batch+0x234/0x2d0 [ 130.111128][ T10] ? cleanup_net+0x4f3/0xb60 [ 130.111279][ T10] ? process_one_work+0xe2c/0x1730 [ 130.111427][ T10] ? worker_thread+0x587/0xd30 [ 130.111666][ T10] ? kthread+0x28a/0x350 [ 130.111780][ T10] ? ret_from_fork+0x31/0x70 [ 130.111935][ T10] ? ret_from_fork_asm+0x1a/0x30 [ 130.112084][ T10] ? in6_dev_get+0xcc/0x210 [ 130.112322][ T10] rt6_uncached_list_flush_dev+0x494/0x840 [ 130.112594][ T10] rt6_disable_ip+0xd9/0x140 [ 130.112742][ T10] ? __pfx_rt6_disable_ip+0x10/0x10 [ 130.112891][ T10] ? mark_lock+0x38/0x3e0 [ 130.113002][ T10] addrconf_ifdown.isra.0+0x103/0x1560 [ 130.113245][ T10] ? __try_to_del_timer_sync+0xe7/0x140 [ 130.113397][ T10] ? __pfx_addrconf_ifdown.isra.0+0x10/0x10 [ 130.113592][ T10] addrconf_notify+0xd1/0xd60 [ 130.113737][ T10] notifier_call_chain+0xcd/0x150 [ 130.113972][ T10] dev_close_many+0x2d8/0x650 [ 130.114125][ T10] ? __pfx_dev_close_many+0x10/0x10 [ 130.114275][ T10] ? default_device_exit_batch+0x81/0x2d0 [ 130.114513][ T10] ? trace_contention_end+0xdc/0x140 [ 130.114668][ T10] unregister_netdevice_many_notify+0x3d5/0x1190 [ 130.114854][ T10] ? mutex_is_locked+0x17/0x50 [ 130.114997][ T10] ? __pfx_unregister_netdevice_many_notify+0x10/0x10 [ 130.115186][ T10] ? __pfx_unregister_netdevice_queue+0x10/0x10 [ 130.115543][ T10] default_device_exit_batch+0x234/0x2d0 [ 130.115701][ T10] ? __pfx_default_device_exit_batch+0x10/0x10 [ 130.115884][ T10] ? ops_exit_list+0xb4/0x170 [ 130.116037][ T10] cleanup_net+0x4f3/0xb60 [ 130.116187][ T10] ? __pfx_lock_acquire.part.0+0x10/0x10 [ 130.116432][ T10] ? __pfx_cleanup_net+0x10/0x10 [ 130.116583][ T10] ? trace_lock_acquire+0x135/0x1c0 [ 130.116729][ T10] ? process_one_work+0xde2/0x1730 [ 130.116875][ T10] ? lock_acquire+0x32/0xc0 [ 130.117026][ T10] ? process_one_work+0xde2/0x1730 [ 130.117263][ T10] process_one_work+0xe2c/0x1730 [ 130.117417][ T10] ? __pfx___lock_release+0x10/0x10 [ 130.117642][ T10] ? __pfx_process_one_work+0x10/0x10 [ 130.117800][ T10] ? assign_work+0x16c/0x240 [ 130.117948][ T10] worker_thread+0x587/0xd30 [ 130.118100][ T10] ? __pfx_worker_thread+0x10/0x10 [ 130.118329][ T10] kthread+0x28a/0x350 [ 130.118443][ T10] ? __pfx_kthread+0x10/0x10 [ 130.118597][ T10] ret_from_fork+0x31/0x70 [ 130.118754][ T10] ? __pfx_kthread+0x10/0x10 [ 130.118903][ T10] ret_from_fork_asm+0x1a/0x30 [ 130.119137][ T10]