[ 39.427023][ T312] ip (312) used greatest stack depth: 23664 bytes left [ 113.034699][ T447] ip (447) used greatest stack depth: 22848 bytes left [ 1000.625302][ T10] [ 1000.625431][ T10] ===================================================== [ 1000.625642][ T10] WARNING: SOFTIRQ-safe -> SOFTIRQ-unsafe lock order detected [ 1000.625918][ T10] 6.9.0-rc1-virtme #1 Not tainted [ 1000.626085][ T10] ----------------------------------------------------- [ 1000.626255][ T10] kworker/u16:0/10 [HC0[0]:SC0[2]:HE1:SE0] is trying to acquire: [ 1000.626474][ T10] ffff888001a70968 (&p->alloc_lock){+.+.}-{2:2}, at: __get_task_comm+0x27/0x70 [ 1000.626751][ T10] [ 1000.626751][ T10] and this task is already holding: [ 1000.626977][ T10] ffff88803613f218 (&ul->lock){+.-.}-{2:2}, at: rt6_uncached_list_flush_dev+0x138/0x840 [ 1000.627247][ T10] which would create a new lock dependency: [ 1000.627426][ T10] (&ul->lock){+.-.}-{2:2} -> (&p->alloc_lock){+.+.}-{2:2} [ 1000.627653][ T10] [ 1000.627653][ T10] but this new dependency connects a SOFTIRQ-irq-safe lock: [ 1000.627912][ T10] (&ul->lock){+.-.}-{2:2} [ 1000.627919][ T10] [ 1000.627919][ T10] ... which became SOFTIRQ-irq-safe at: [ 1000.628270][ T10] __lock_acquire+0x797/0x1570 [ 1000.628422][ T10] lock_acquire.part.0+0xeb/0x330 [ 1000.628563][ T10] _raw_spin_lock_bh+0x38/0x50 [ 1000.628706][ T10] rt6_uncached_list_del+0x77/0x200 [ 1000.628871][ T10] ip6_dst_destroy+0x74/0x1e0 [ 1000.629003][ T10] dst_destroy+0xbc/0x370 [ 1000.629154][ T10] rcu_do_batch+0x3c0/0xfb0 [ 1000.629293][ T10] rcu_core+0x2be/0x500 [ 1000.629410][ T10] __do_softirq+0x1f8/0x5df [ 1000.629545][ T10] irq_exit_rcu+0x97/0xc0 [ 1000.629683][ T10] sysvec_apic_timer_interrupt+0x75/0x80 [ 1000.629819][ T10] asm_sysvec_apic_timer_interrupt+0x1a/0x20 [ 1000.629983][ T10] default_idle+0xf/0x20 [ 1000.630084][ T10] default_idle_call+0x6d/0xb0 [ 1000.630218][ T10] cpuidle_idle_call+0x1f4/0x280 [ 1000.630356][ T10] do_idle+0xf9/0x160 [ 1000.630456][ T10] cpu_startup_entry+0x54/0x60 [ 1000.630588][ T10] rest_init+0x14f/0x260 [ 1000.630693][ T10] start_kernel+0x318/0x3d0 [ 1000.630834][ T10] x86_64_start_reservations+0x18/0x30 [ 1000.630967][ T10] x86_64_start_kernel+0xba/0x110 [ 1000.631099][ T10] common_startup_64+0x12c/0x138 [ 1000.631241][ T10] [ 1000.631241][ T10] to a SOFTIRQ-irq-unsafe lock: [ 1000.631404][ T10] (&p->alloc_lock){+.+.}-{2:2} [ 1000.631409][ T10] [ 1000.631409][ T10] ... which became SOFTIRQ-irq-unsafe at: [ 1000.631730][ T10] ... [ 1000.631732][ T10] __lock_acquire+0x797/0x1570 [ 1000.631938][ T10] lock_acquire.part.0+0xeb/0x330 [ 1000.632073][ T10] _raw_spin_lock+0x30/0x40 [ 1000.632205][ T10] set_mems_allowed+0x1d/0x210 [ 1000.632343][ T10] kernel_init_freeable+0x72/0x310 [ 1000.632477][ T10] kernel_init+0x20/0x200 [ 1000.632608][ T10] ret_from_fork+0x31/0x70 [ 1000.632750][ T10] ret_from_fork_asm+0x1a/0x30 [ 1000.632897][ T10] [ 1000.632897][ T10] other info that might help us debug this: [ 1000.632897][ T10] [ 1000.633162][ T10] Possible interrupt unsafe locking scenario: [ 1000.633162][ T10] [ 1000.633357][ T10] CPU0 CPU1 [ 1000.633491][ T10] ---- ---- [ 1000.633638][ T10] lock(&p->alloc_lock); [ 1000.633746][ T10] local_irq_disable(); [ 1000.633942][ T10] lock(&ul->lock); [ 1000.634145][ T10] lock(&p->alloc_lock); [ 1000.634335][ T10] [ 1000.634438][ T10] lock(&ul->lock); [ 1000.634540][ T10] [ 1000.634540][ T10] *** DEADLOCK *** [ 1000.634540][ T10] [ 1000.634760][ T10] 5 locks held by kworker/u16:0/10: [ 1000.634895][ T10] #0: ffff88800190a948 ((wq_completion)netns){+.+.}-{0:0}, at: process_one_work+0xda6/0x1730 [ 1000.635199][ T10] #1: ffffc900000afda0 (net_cleanup_work){+.+.}-{0:0}, at: process_one_work+0xde2/0x1730 [ 1000.635462][ T10] #2: ffffffffb359bc50 (pernet_ops_rwsem){++++}-{3:3}, at: cleanup_net+0xbc/0xb60 [ 1000.635742][ T10] #3: ffffffffb35b7208 (rtnl_mutex){+.+.}-{3:3}, at: default_device_exit_batch+0x81/0x2d0 [ 1000.636037][ T10] #4: ffff88803613f218 (&ul->lock){+.-.}-{2:2}, at: rt6_uncached_list_flush_dev+0x138/0x840 [ 1000.636320][ T10] [ 1000.636320][ T10] the dependencies between SOFTIRQ-irq-safe lock and the holding lock: [ 1000.636583][ T10] -> (&ul->lock){+.-.}-{2:2} { [ 1000.636727][ T10] HARDIRQ-ON-W at: [ 1000.636831][ T10] __lock_acquire+0x797/0x1570 [ 1000.637013][ T10] lock_acquire.part.0+0xeb/0x330 [ 1000.637183][ T10] _raw_spin_lock_bh+0x38/0x50 [ 1000.637448][ T10] rt6_uncached_list_add+0x55/0x1b0 [ 1000.637618][ T10] icmp6_dst_alloc+0x2c0/0x450 [ 1000.637794][ T10] mld_sendpack+0x529/0xbc0 [ 1000.637967][ T10] mld_ifc_work+0x32/0x1f0 [ 1000.638218][ T10] process_one_work+0xe2c/0x1730 [ 1000.638392][ T10] worker_thread+0x587/0xd30 [ 1000.638562][ T10] kthread+0x28a/0x350 [ 1000.638784][ T10] ret_from_fork+0x31/0x70 [ 1000.638958][ T10] ret_from_fork_asm+0x1a/0x30 [ 1000.639131][ T10] IN-SOFTIRQ-W at: [ 1000.639233][ T10] __lock_acquire+0x797/0x1570 [ 1000.639401][ T10] lock_acquire.part.0+0xeb/0x330 [ 1000.639582][ T10] _raw_spin_lock_bh+0x38/0x50 [ 1000.639756][ T10] rt6_uncached_list_del+0x77/0x200 [ 1000.640000][ T10] ip6_dst_destroy+0x74/0x1e0 [ 1000.640168][ T10] dst_destroy+0xbc/0x370 [ 1000.640347][ T10] rcu_do_batch+0x3c0/0xfb0 [ 1000.640688][ T10] rcu_core+0x2be/0x500 [ 1000.640863][ T10] __do_softirq+0x1f8/0x5df [ 1000.641035][ T10] irq_exit_rcu+0x97/0xc0 [ 1000.641203][ T10] sysvec_apic_timer_interrupt+0x75/0x80 [ 1000.641411][ T10] asm_sysvec_apic_timer_interrupt+0x1a/0x20 [ 1000.641634][ T10] default_idle+0xf/0x20 [ 1000.641829][ T10] default_idle_call+0x6d/0xb0 [ 1000.642106][ T10] cpuidle_idle_call+0x1f4/0x280 [ 1000.642289][ T10] do_idle+0xf9/0x160 [ 1000.642441][ T10] cpu_startup_entry+0x54/0x60 [ 1000.642698][ T10] rest_init+0x14f/0x260 [ 1000.642887][ T10] start_kernel+0x318/0x3d0 [ 1000.643057][ T10] x86_64_start_reservations+0x18/0x30 [ 1000.643236][ T10] x86_64_start_kernel+0xba/0x110 [ 1000.643404][ T10] common_startup_64+0x12c/0x138 [ 1000.643572][ T10] INITIAL USE at: [ 1000.643675][ T10] __lock_acquire+0x797/0x1570 [ 1000.643843][ T10] lock_acquire.part.0+0xeb/0x330 [ 1000.644097][ T10] _raw_spin_lock_bh+0x38/0x50 [ 1000.644269][ T10] rt6_uncached_list_add+0x55/0x1b0 [ 1000.644441][ T10] icmp6_dst_alloc+0x2c0/0x450 [ 1000.644695][ T10] mld_sendpack+0x529/0xbc0 [ 1000.644863][ T10] mld_ifc_work+0x32/0x1f0 [ 1000.645034][ T10] process_one_work+0xe2c/0x1730 [ 1000.645203][ T10] worker_thread+0x587/0xd30 [ 1000.645379][ T10] kthread+0x28a/0x350 [ 1000.645516][ T10] ret_from_fork+0x31/0x70 [ 1000.645854][ T10] ret_from_fork_asm+0x1a/0x30 [ 1000.646154][ T10] } [ 1000.646226][ T10] ... key at: [] __key.15+0x0/0x40 [ 1000.646453][ T10] [ 1000.646453][ T10] the dependencies between the lock to be acquired [ 1000.646455][ T10] and SOFTIRQ-irq-unsafe lock: [ 1000.646966][ T10] -> (&p->alloc_lock){+.+.}-{2:2} { [ 1000.647109][ T10] HARDIRQ-ON-W at: [ 1000.647215][ T10] __lock_acquire+0x797/0x1570 [ 1000.647387][ T10] lock_acquire.part.0+0xeb/0x330 [ 1000.647562][ T10] _raw_spin_lock+0x30/0x40 [ 1000.647752][ T10] set_mems_allowed+0x1d/0x210 [ 1000.648027][ T10] kernel_init_freeable+0x72/0x310 [ 1000.648212][ T10] kernel_init+0x20/0x200 [ 1000.648404][ T10] ret_from_fork+0x31/0x70 [ 1000.648572][ T10] ret_from_fork_asm+0x1a/0x30 [ 1000.648854][ T10] SOFTIRQ-ON-W at: [ 1000.648965][ T10] __lock_acquire+0x797/0x1570 [ 1000.649136][ T10] lock_acquire.part.0+0xeb/0x330 [ 1000.649338][ T10] _raw_spin_lock+0x30/0x40 [ 1000.649525][ T10] set_mems_allowed+0x1d/0x210 [ 1000.649696][ T10] kernel_init_freeable+0x72/0x310 [ 1000.649877][ T10] kernel_init+0x20/0x200 [ 1000.650068][ T10] ret_from_fork+0x31/0x70 [ 1000.650333][ T10] ret_from_fork_asm+0x1a/0x30 [ 1000.650510][ T10] INITIAL USE at: [ 1000.650614][ T10] __lock_acquire+0x797/0x1570 [ 1000.650884][ T10] lock_acquire.part.0+0xeb/0x330 [ 1000.651076][ T10] _raw_spin_lock+0x30/0x40 [ 1000.651255][ T10] set_mems_allowed+0x1d/0x210 [ 1000.651427][ T10] kernel_init_freeable+0x72/0x310 [ 1000.651694][ T10] kernel_init+0x20/0x200 [ 1000.651862][ T10] ret_from_fork+0x31/0x70 [ 1000.652051][ T10] ret_from_fork_asm+0x1a/0x30 [ 1000.652307][ T10] } [ 1000.652394][ T10] ... key at: [] __key.388+0x0/0x40 [ 1000.652603][ T10] ... acquired at: [ 1000.652724][ T10] check_prev_add+0x194/0xce0 [ 1000.652870][ T10] validate_chain+0x71d/0x9b0 [ 1000.653095][ T10] __lock_acquire+0xaf0/0x1570 [ 1000.653247][ T10] lock_acquire.part.0+0xeb/0x330 [ 1000.653387][ T10] _raw_spin_lock+0x30/0x40 [ 1000.653535][ T10] __get_task_comm+0x27/0x70 [ 1000.653769][ T10] ref_tracker_alloc+0x2ee/0x490 [ 1000.653931][ T10] rt6_uncached_list_flush_dev+0x494/0x840 [ 1000.654110][ T10] rt6_disable_ip+0xd9/0x140 [ 1000.654274][ T10] addrconf_ifdown.isra.0+0x103/0x1560 [ 1000.654427][ T10] addrconf_notify+0xd1/0xd60 [ 1000.654578][ T10] notifier_call_chain+0xcd/0x150 [ 1000.654741][ T10] unregister_netdevice_many_notify+0x548/0x1190 [ 1000.655015][ T10] default_device_exit_batch+0x234/0x2d0 [ 1000.655189][ T10] cleanup_net+0x4f3/0xb60 [ 1000.655342][ T10] process_one_work+0xe2c/0x1730 [ 1000.655499][ T10] worker_thread+0x587/0xd30 [ 1000.655741][ T10] kthread+0x28a/0x350 [ 1000.655863][ T10] ret_from_fork+0x31/0x70 [ 1000.656007][ T10] ret_from_fork_asm+0x1a/0x30 [ 1000.656151][ T10] [ 1000.656234][ T10] [ 1000.656234][ T10] stack backtrace: [ 1000.656426][ T10] CPU: 3 PID: 10 Comm: kworker/u16:0 Not tainted 6.9.0-rc1-virtme #1 [ 1000.656735][ T10] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.3-0-ga6ed6b701f0a-prebuilt.qemu.org 04/01/2014 [ 1000.657047][ T10] Workqueue: netns cleanup_net [ 1000.657271][ T10] Call Trace: [ 1000.657375][ T10] [ 1000.657451][ T10] dump_stack_lvl+0x82/0xd0 [ 1000.657601][ T10] print_bad_irq_dependency+0x957/0xd40 [ 1000.657744][ T10] ? __pfx_print_bad_irq_dependency+0x10/0x10 [ 1000.658000][ T10] ? __pfx_usage_skip+0x10/0x10 [ 1000.658140][ T10] ? __bfs+0x246/0x650 [ 1000.658242][ T10] ? __pfx_usage_match+0x10/0x10 [ 1000.658378][ T10] check_irq_usage+0x596/0x850 [ 1000.658598][ T10] ? arch_stack_walk+0x8c/0xf0 [ 1000.658736][ T10] ? __pfx_check_irq_usage+0x10/0x10 [ 1000.658956][ T10] ? __bfs+0x246/0x650 [ 1000.659065][ T10] ? __pfx_hlock_conflict+0x10/0x10 [ 1000.659202][ T10] ? check_path.constprop.0+0x24/0x50 [ 1000.659421][ T10] ? check_noncircular+0x14c/0x3e0 [ 1000.659554][ T10] ? __pfx_check_noncircular+0x10/0x10 [ 1000.659694][ T10] ? check_prev_add+0x194/0xce0 [ 1000.659827][ T10] check_prev_add+0x194/0xce0 [ 1000.660045][ T10] ? validate_chain+0x130/0x9b0 [ 1000.660192][ T10] validate_chain+0x71d/0x9b0 [ 1000.660328][ T10] ? mark_lock+0x38/0x3e0 [ 1000.660436][ T10] ? __pfx_validate_chain+0x10/0x10 [ 1000.660571][ T10] ? hlock_class+0x4e/0x130 [ 1000.660788][ T10] ? mark_lock+0x38/0x3e0 [ 1000.660895][ T10] __lock_acquire+0xaf0/0x1570 [ 1000.661034][ T10] lock_acquire.part.0+0xeb/0x330 [ 1000.661171][ T10] ? __get_task_comm+0x27/0x70 [ 1000.661311][ T10] ? mark_lock+0x38/0x3e0 [ 1000.661412][ T10] ? __pfx_lock_acquire.part.0+0x10/0x10 [ 1000.661555][ T10] ? trace_lock_acquire+0x135/0x1c0 [ 1000.661694][ T10] ? __get_task_comm+0x27/0x70 [ 1000.661827][ T10] ? lock_acquire+0x32/0xc0 [ 1000.662047][ T10] ? __get_task_comm+0x27/0x70 [ 1000.662185][ T10] _raw_spin_lock+0x30/0x40 [ 1000.662323][ T10] ? __get_task_comm+0x27/0x70 [ 1000.662457][ T10] __get_task_comm+0x27/0x70 [ 1000.662591][ T10] ref_tracker_alloc+0x2ee/0x490 [ 1000.662738][ T10] ? __pfx_ref_tracker_alloc+0x10/0x10 [ 1000.662958][ T10] ? __lock_release+0x103/0x460 [ 1000.663092][ T10] ? rt6_uncached_list_flush_dev+0x494/0x840 [ 1000.663265][ T10] ? rt6_disable_ip+0xd9/0x140 [ 1000.663399][ T10] ? addrconf_ifdown.isra.0+0x103/0x1560 [ 1000.663539][ T10] ? addrconf_notify+0xd1/0xd60 [ 1000.663674][ T10] ? notifier_call_chain+0xcd/0x150 [ 1000.663885][ T10] ? unregister_netdevice_many_notify+0x548/0x1190 [ 1000.664143][ T10] ? default_device_exit_batch+0x234/0x2d0 [ 1000.664323][ T10] ? cleanup_net+0x4f3/0xb60 [ 1000.664459][ T10] ? process_one_work+0xe2c/0x1730 [ 1000.664653][ T10] ? worker_thread+0x587/0xd30 [ 1000.664905][ T10] ? kthread+0x28a/0x350 [ 1000.665007][ T10] ? ret_from_fork+0x31/0x70 [ 1000.665150][ T10] ? ret_from_fork_asm+0x1a/0x30 [ 1000.665400][ T10] ? in6_dev_get+0xcc/0x210 [ 1000.665576][ T10] rt6_uncached_list_flush_dev+0x494/0x840 [ 1000.665794][ T10] rt6_disable_ip+0xd9/0x140 [ 1000.665956][ T10] ? __pfx_rt6_disable_ip+0x10/0x10 [ 1000.666122][ T10] ? hlock_class+0x4e/0x130 [ 1000.666260][ T10] addrconf_ifdown.isra.0+0x103/0x1560 [ 1000.666414][ T10] ? __try_to_del_timer_sync+0xe7/0x140 [ 1000.666659][ T10] ? __pfx_addrconf_ifdown.isra.0+0x10/0x10 [ 1000.666837][ T10] addrconf_notify+0xd1/0xd60 [ 1000.666987][ T10] notifier_call_chain+0xcd/0x150 [ 1000.667133][ T10] unregister_netdevice_many_notify+0x548/0x1190 [ 1000.667321][ T10] ? mutex_is_locked+0x17/0x50 [ 1000.667542][ T10] ? __pfx_unregister_netdevice_many_notify+0x10/0x10 [ 1000.667821][ T10] ? __pfx_unregister_netdevice_queue+0x10/0x10 [ 1000.667995][ T10] default_device_exit_batch+0x234/0x2d0 [ 1000.668150][ T10] ? __pfx_default_device_exit_batch+0x10/0x10 [ 1000.668340][ T10] ? ops_exit_list+0xb4/0x170 [ 1000.668530][ T10] cleanup_net+0x4f3/0xb60 [ 1000.668689][ T10] ? __pfx_lock_acquire.part.0+0x10/0x10 [ 1000.668850][ T10] ? __pfx_cleanup_net+0x10/0x10 [ 1000.669200][ T10] ? trace_lock_acquire+0x135/0x1c0 [ 1000.669356][ T10] ? process_one_work+0xde2/0x1730 [ 1000.669509][ T10] ? lock_acquire+0x32/0xc0 [ 1000.669663][ T10] ? process_one_work+0xde2/0x1730 [ 1000.669803][ T10] process_one_work+0xe2c/0x1730 [ 1000.669967][ T10] ? __pfx___lock_release+0x10/0x10 [ 1000.670105][ T10] ? __pfx_process_one_work+0x10/0x10 [ 1000.670332][ T10] ? assign_work+0x16c/0x240 [ 1000.670489][ T10] worker_thread+0x587/0xd30 [ 1000.670646][ T10] ? __pfx_worker_thread+0x10/0x10 [ 1000.670811][ T10] kthread+0x28a/0x350 [ 1000.670929][ T10] ? __pfx_kthread+0x10/0x10 [ 1000.671066][ T10] ret_from_fork+0x31/0x70 [ 1000.671300][ T10] ? __pfx_kthread+0x10/0x10 [ 1000.671464][ T10] ret_from_fork_asm+0x1a/0x30 [ 1000.671609][ T10]