[ 62.475915][ T729] ip (729) used greatest stack depth: 24032 bytes left [ 70.221704][ T771] ip (771) used greatest stack depth: 23072 bytes left [ 156.209871][ T72] [ 156.209988][ T72] ===================================================== [ 156.210180][ T72] WARNING: SOFTIRQ-safe -> SOFTIRQ-unsafe lock order detected [ 156.210422][ T72] 6.9.0-rc1-virtme #1 Not tainted [ 156.210573][ T72] ----------------------------------------------------- [ 156.210758][ T72] kworker/u16:1/72 [HC0[0]:SC0[2]:HE1:SE0] is trying to acquire: [ 156.210979][ T72] ffff888004e9cee8 (&p->alloc_lock){+.+.}-{2:2}, at: __get_task_comm+0x27/0x70 [ 156.211262][ T72] [ 156.211262][ T72] and this task is already holding: [ 156.211502][ T72] ffff88803603f218 (&ul->lock){+.-.}-{2:2}, at: rt6_uncached_list_flush_dev+0x138/0x840 [ 156.211791][ T72] which would create a new lock dependency: [ 156.211986][ T72] (&ul->lock){+.-.}-{2:2} -> (&p->alloc_lock){+.+.}-{2:2} [ 156.212232][ T72] [ 156.212232][ T72] but this new dependency connects a SOFTIRQ-irq-safe lock: [ 156.212517][ T72] (&ul->lock){+.-.}-{2:2} [ 156.212521][ T72] [ 156.212521][ T72] ... which became SOFTIRQ-irq-safe at: [ 156.212927][ T72] __lock_acquire+0x797/0x1570 [ 156.213095][ T72] lock_acquire.part.0+0xeb/0x330 [ 156.213245][ T72] _raw_spin_lock_bh+0x38/0x50 [ 156.213398][ T72] rt6_uncached_list_del+0x77/0x200 [ 156.213548][ T72] ip6_dst_destroy+0x74/0x1e0 [ 156.213696][ T72] dst_destroy+0xbc/0x370 [ 156.213850][ T72] rcu_do_batch+0x3c0/0xfb0 [ 156.213999][ T72] rcu_core+0x2be/0x500 [ 156.214107][ T72] __do_softirq+0x1f8/0x5df [ 156.214257][ T72] irq_exit_rcu+0x97/0xc0 [ 156.214412][ T72] sysvec_apic_timer_interrupt+0x75/0x80 [ 156.214560][ T72] asm_sysvec_apic_timer_interrupt+0x1a/0x20 [ 156.214742][ T72] _raw_spin_unlock_irqrestore+0x43/0x70 [ 156.214888][ T72] __create_object+0x5e/0xb0 [ 156.215038][ T72] kmem_cache_alloc+0x208/0x270 [ 156.215186][ T72] vm_area_dup+0x4d/0x150 [ 156.215341][ T72] dup_mmap+0x6f5/0x1820 [ 156.215457][ T72] copy_mm+0x267/0x5c0 [ 156.215566][ T72] copy_process+0x1ab2/0x51d0 [ 156.215710][ T72] kernel_clone+0xc2/0x510 [ 156.215851][ T72] __do_sys_clone+0xa1/0xe0 [ 156.215993][ T72] do_syscall_64+0xc6/0x1e0 [ 156.216136][ T72] entry_SYSCALL_64_after_hwframe+0x6d/0x75 [ 156.216317][ T72] [ 156.216317][ T72] to a SOFTIRQ-irq-unsafe lock: [ 156.216499][ T72] (&p->alloc_lock){+.+.}-{2:2} [ 156.216503][ T72] [ 156.216503][ T72] ... which became SOFTIRQ-irq-unsafe at: [ 156.216860][ T72] ... [ 156.216862][ T72] __lock_acquire+0x797/0x1570 [ 156.217077][ T72] lock_acquire.part.0+0xeb/0x330 [ 156.217223][ T72] _raw_spin_lock+0x30/0x40 [ 156.217370][ T72] set_mems_allowed+0x1d/0x210 [ 156.217525][ T72] kernel_init_freeable+0x72/0x310 [ 156.217689][ T72] kernel_init+0x20/0x200 [ 156.217835][ T72] ret_from_fork+0x31/0x70 [ 156.217984][ T72] ret_from_fork_asm+0x1a/0x30 [ 156.218131][ T72] [ 156.218131][ T72] other info that might help us debug this: [ 156.218131][ T72] [ 156.218429][ T72] Possible interrupt unsafe locking scenario: [ 156.218429][ T72] [ 156.218644][ T72] CPU0 CPU1 [ 156.218798][ T72] ---- ---- [ 156.218944][ T72] lock(&p->alloc_lock); [ 156.219062][ T72] local_irq_disable(); [ 156.219247][ T72] lock(&ul->lock); [ 156.219448][ T72] lock(&p->alloc_lock); [ 156.219638][ T72] [ 156.219760][ T72] lock(&ul->lock); [ 156.219874][ T72] [ 156.219874][ T72] *** DEADLOCK *** [ 156.219874][ T72] [ 156.220092][ T72] 5 locks held by kworker/u16:1/72: [ 156.220239][ T72] #0: ffff88800190a948 ((wq_completion)netns){+.+.}-{0:0}, at: process_one_work+0xda6/0x1730 [ 156.220549][ T72] #1: ffffc900004dfda0 (net_cleanup_work){+.+.}-{0:0}, at: process_one_work+0xde2/0x1730 [ 156.220808][ T72] #2: ffffffff8c99bc50 (pernet_ops_rwsem){++++}-{3:3}, at: cleanup_net+0xbc/0xb60 [ 156.221069][ T72] #3: ffffffff8c9b7208 (rtnl_mutex){+.+.}-{3:3}, at: default_device_exit_batch+0x81/0x2d0 [ 156.221371][ T72] #4: ffff88803603f218 (&ul->lock){+.-.}-{2:2}, at: rt6_uncached_list_flush_dev+0x138/0x840 [ 156.221675][ T72] [ 156.221675][ T72] the dependencies between SOFTIRQ-irq-safe lock and the holding lock: [ 156.221965][ T72] -> (&ul->lock){+.-.}-{2:2} { [ 156.222122][ T72] HARDIRQ-ON-W at: [ 156.222238][ T72] __lock_acquire+0x797/0x1570 [ 156.222426][ T72] lock_acquire.part.0+0xeb/0x330 [ 156.222618][ T72] _raw_spin_lock_bh+0x38/0x50 [ 156.222811][ T72] rt6_uncached_list_add+0x55/0x1b0 [ 156.223000][ T72] icmp6_dst_alloc+0x2c0/0x450 [ 156.223189][ T72] mld_sendpack+0x529/0xbc0 [ 156.223384][ T72] mld_ifc_work+0x32/0x1f0 [ 156.223567][ T72] process_one_work+0xe2c/0x1730 [ 156.223752][ T72] worker_thread+0x587/0xd30 [ 156.223941][ T72] kthread+0x28a/0x350 [ 156.224090][ T72] ret_from_fork+0x31/0x70 [ 156.224274][ T72] ret_from_fork_asm+0x1a/0x30 [ 156.224461][ T72] IN-SOFTIRQ-W at: [ 156.224575][ T72] __lock_acquire+0x797/0x1570 [ 156.224763][ T72] lock_acquire.part.0+0xeb/0x330 [ 156.224956][ T72] _raw_spin_lock_bh+0x38/0x50 [ 156.225149][ T72] rt6_uncached_list_del+0x77/0x200 [ 156.225335][ T72] ip6_dst_destroy+0x74/0x1e0 [ 156.225520][ T72] dst_destroy+0xbc/0x370 [ 156.225705][ T72] rcu_do_batch+0x3c0/0xfb0 [ 156.225896][ T72] rcu_core+0x2be/0x500 [ 156.226083][ T72] __do_softirq+0x1f8/0x5df [ 156.226275][ T72] irq_exit_rcu+0x97/0xc0 [ 156.226457][ T72] sysvec_apic_timer_interrupt+0x75/0x80 [ 156.226680][ T72] asm_sysvec_apic_timer_interrupt+0x1a/0x20 [ 156.226906][ T72] _raw_spin_unlock_irqrestore+0x43/0x70 [ 156.227135][ T72] __create_object+0x5e/0xb0 [ 156.227426][ T72] kmem_cache_alloc+0x208/0x270 [ 156.227633][ T72] vm_area_dup+0x4d/0x150 [ 156.227835][ T72] dup_mmap+0x6f5/0x1820 [ 156.228105][ T72] copy_mm+0x267/0x5c0 [ 156.228253][ T72] copy_process+0x1ab2/0x51d0 [ 156.228444][ T72] kernel_clone+0xc2/0x510 [ 156.228720][ T72] __do_sys_clone+0xa1/0xe0 [ 156.228914][ T72] do_syscall_64+0xc6/0x1e0 [ 156.229099][ T72] entry_SYSCALL_64_after_hwframe+0x6d/0x75 [ 156.229321][ T72] INITIAL USE at: [ 156.229432][ T72] __lock_acquire+0x797/0x1570 [ 156.229617][ T72] lock_acquire.part.0+0xeb/0x330 [ 156.229814][ T72] _raw_spin_lock_bh+0x38/0x50 [ 156.230074][ T72] rt6_uncached_list_add+0x55/0x1b0 [ 156.230251][ T72] icmp6_dst_alloc+0x2c0/0x450 [ 156.230429][ T72] mld_sendpack+0x529/0xbc0 [ 156.230611][ T72] mld_ifc_work+0x32/0x1f0 [ 156.230872][ T72] process_one_work+0xe2c/0x1730 [ 156.231049][ T72] worker_thread+0x587/0xd30 [ 156.231227][ T72] kthread+0x28a/0x350 [ 156.231377][ T72] ret_from_fork+0x31/0x70 [ 156.231563][ T72] ret_from_fork_asm+0x1a/0x30 [ 156.231742][ T72] } [ 156.231818][ T72] ... key at: [] __key.15+0x0/0x40 [ 156.232116][ T72] [ 156.232116][ T72] the dependencies between the lock to be acquired [ 156.232117][ T72] and SOFTIRQ-irq-unsafe lock: [ 156.232506][ T72] -> (&p->alloc_lock){+.+.}-{2:2} { [ 156.232740][ T72] HARDIRQ-ON-W at: [ 156.232851][ T72] __lock_acquire+0x797/0x1570 [ 156.233042][ T72] lock_acquire.part.0+0xeb/0x330 [ 156.233227][ T72] _raw_spin_lock+0x30/0x40 [ 156.233423][ T72] set_mems_allowed+0x1d/0x210 [ 156.233607][ T72] kernel_init_freeable+0x72/0x310 [ 156.233792][ T72] kernel_init+0x20/0x200 [ 156.233979][ T72] ret_from_fork+0x31/0x70 [ 156.234260][ T72] ret_from_fork_asm+0x1a/0x30 [ 156.234460][ T72] SOFTIRQ-ON-W at: [ 156.234571][ T72] __lock_acquire+0x797/0x1570 [ 156.234855][ T72] lock_acquire.part.0+0xeb/0x330 [ 156.235046][ T72] _raw_spin_lock+0x30/0x40 [ 156.235235][ T72] set_mems_allowed+0x1d/0x210 [ 156.235433][ T72] kernel_init_freeable+0x72/0x310 [ 156.235623][ T72] kernel_init+0x20/0x200 [ 156.235806][ T72] ret_from_fork+0x31/0x70 [ 156.235994][ T72] ret_from_fork_asm+0x1a/0x30 [ 156.236274][ T72] INITIAL USE at: [ 156.236380][ T72] __lock_acquire+0x797/0x1570 [ 156.236569][ T72] lock_acquire.part.0+0xeb/0x330 [ 156.236834][ T72] _raw_spin_lock+0x30/0x40 [ 156.237017][ T72] set_mems_allowed+0x1d/0x210 [ 156.237201][ T72] kernel_init_freeable+0x72/0x310 [ 156.237388][ T72] kernel_init+0x20/0x200 [ 156.237665][ T72] ret_from_fork+0x31/0x70 [ 156.237851][ T72] ret_from_fork_asm+0x1a/0x30 [ 156.238027][ T72] } [ 156.238104][ T72] ... key at: [] __key.388+0x0/0x40 [ 156.238424][ T72] ... acquired at: [ 156.238541][ T72] check_prev_add+0x194/0xce0 [ 156.238690][ T72] validate_chain+0x71d/0x9b0 [ 156.238834][ T72] __lock_acquire+0xaf0/0x1570 [ 156.238989][ T72] lock_acquire.part.0+0xeb/0x330 [ 156.239226][ T72] _raw_spin_lock+0x30/0x40 [ 156.239375][ T72] __get_task_comm+0x27/0x70 [ 156.239527][ T72] ref_tracker_alloc+0x2ee/0x490 [ 156.239677][ T72] rt6_uncached_list_flush_dev+0x494/0x840 [ 156.239965][ T72] rt6_disable_ip+0xd9/0x140 [ 156.240108][ T72] addrconf_ifdown.isra.0+0x103/0x1560 [ 156.240264][ T72] addrconf_notify+0xd1/0xd60 [ 156.240415][ T72] notifier_call_chain+0xcd/0x150 [ 156.240638][ T72] unregister_netdevice_many_notify+0x548/0x1190 [ 156.240829][ T72] default_device_exit_batch+0x234/0x2d0 [ 156.241095][ T72] cleanup_net+0x4f3/0xb60 [ 156.241242][ T72] process_one_work+0xe2c/0x1730 [ 156.241396][ T72] worker_thread+0x587/0xd30 [ 156.241619][ T72] kthread+0x28a/0x350 [ 156.241733][ T72] ret_from_fork+0x31/0x70 [ 156.241879][ T72] ret_from_fork_asm+0x1a/0x30 [ 156.242104][ T72] [ 156.242181][ T72] [ 156.242181][ T72] stack backtrace: [ 156.242363][ T72] CPU: 0 PID: 72 Comm: kworker/u16:1 Not tainted 6.9.0-rc1-virtme #1 [ 156.242592][ T72] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.3-0-ga6ed6b701f0a-prebuilt.qemu.org 04/01/2014 [ 156.243012][ T72] Workqueue: netns cleanup_net [ 156.243167][ T72] Call Trace: [ 156.243283][ T72] [ 156.243362][ T72] dump_stack_lvl+0x82/0xd0 [ 156.243517][ T72] print_bad_irq_dependency+0x957/0xd40 [ 156.243745][ T72] ? __pfx_print_bad_irq_dependency+0x10/0x10 [ 156.243931][ T72] ? __pfx_usage_skip+0x10/0x10 [ 156.244073][ T72] ? __bfs+0x246/0x650 [ 156.244269][ T72] ? __pfx_usage_match+0x10/0x10 [ 156.244417][ T72] check_irq_usage+0x596/0x850 [ 156.244569][ T72] ? arch_stack_walk+0x8c/0xf0 [ 156.244717][ T72] ? __pfx_check_irq_usage+0x10/0x10 [ 156.244945][ T72] ? __bfs+0x246/0x650 [ 156.245059][ T72] ? __pfx_hlock_conflict+0x10/0x10 [ 156.245211][ T72] ? check_path.constprop.0+0x24/0x50 [ 156.245360][ T72] ? check_noncircular+0x14c/0x3e0 [ 156.245510][ T72] ? __pfx_check_noncircular+0x10/0x10 [ 156.245747][ T72] ? check_prev_add+0x194/0xce0 [ 156.245977][ T72] check_prev_add+0x194/0xce0 [ 156.246128][ T72] ? validate_chain+0x130/0x9b0 [ 156.246282][ T72] validate_chain+0x71d/0x9b0 [ 156.246431][ T72] ? mark_lock+0x38/0x3e0 [ 156.246542][ T72] ? __pfx_validate_chain+0x10/0x10 [ 156.246786][ T72] ? hlock_class+0x4e/0x130 [ 156.246931][ T72] ? mark_lock+0x38/0x3e0 [ 156.247041][ T72] __lock_acquire+0xaf0/0x1570 [ 156.247191][ T72] lock_acquire.part.0+0xeb/0x330 [ 156.247347][ T72] ? __get_task_comm+0x27/0x70 [ 156.247582][ T72] ? mark_lock+0x38/0x3e0 [ 156.247696][ T72] ? __pfx_lock_acquire.part.0+0x10/0x10 [ 156.247845][ T72] ? trace_lock_acquire+0x135/0x1c0 [ 156.248079][ T72] ? __get_task_comm+0x27/0x70 [ 156.248230][ T72] ? lock_acquire+0x32/0xc0 [ 156.248377][ T72] ? __get_task_comm+0x27/0x70 [ 156.248532][ T72] _raw_spin_lock+0x30/0x40 [ 156.248765][ T72] ? __get_task_comm+0x27/0x70 [ 156.248920][ T72] __get_task_comm+0x27/0x70 [ 156.249064][ T72] ref_tracker_alloc+0x2ee/0x490 [ 156.249214][ T72] ? __pfx_ref_tracker_alloc+0x10/0x10 [ 156.249444][ T72] ? __lock_release+0x103/0x460 [ 156.249588][ T72] ? rt6_uncached_list_flush_dev+0x494/0x840 [ 156.249780][ T72] ? rt6_disable_ip+0xd9/0x140 [ 156.249925][ T72] ? addrconf_ifdown.isra.0+0x103/0x1560 [ 156.250073][ T72] ? addrconf_notify+0xd1/0xd60 [ 156.250216][ T72] ? notifier_call_chain+0xcd/0x150 [ 156.250362][ T72] ? unregister_netdevice_many_notify+0x548/0x1190 [ 156.250542][ T72] ? default_device_exit_batch+0x234/0x2d0 [ 156.250799][ T72] ? cleanup_net+0x4f3/0xb60 [ 156.250944][ T72] ? process_one_work+0xe2c/0x1730 [ 156.251091][ T72] ? worker_thread+0x587/0xd30 [ 156.251236][ T72] ? kthread+0x28a/0x350 [ 156.251423][ T72] ? ret_from_fork+0x31/0x70 [ 156.251568][ T72] ? ret_from_fork_asm+0x1a/0x30 [ 156.251714][ T72] ? in6_dev_get+0xcc/0x210 [ 156.251860][ T72] rt6_uncached_list_flush_dev+0x494/0x840 [ 156.252130][ T72] rt6_disable_ip+0xd9/0x140 [ 156.252274][ T72] ? __pfx_rt6_disable_ip+0x10/0x10 [ 156.252420][ T72] ? hlock_class+0x4e/0x130 [ 156.252562][ T72] addrconf_ifdown.isra.0+0x103/0x1560 [ 156.252796][ T72] ? __try_to_del_timer_sync+0xe7/0x140 [ 156.252943][ T72] ? __pfx_addrconf_ifdown.isra.0+0x10/0x10 [ 156.253126][ T72] addrconf_notify+0xd1/0xd60 [ 156.253271][ T72] notifier_call_chain+0xcd/0x150 [ 156.253420][ T72] unregister_netdevice_many_notify+0x548/0x1190 [ 156.253600][ T72] ? mutex_is_locked+0x17/0x50 [ 156.253750][ T72] ? __pfx_unregister_netdevice_many_notify+0x10/0x10 [ 156.253937][ T72] ? __pfx_unregister_netdevice_queue+0x10/0x10 [ 156.254197][ T72] default_device_exit_batch+0x234/0x2d0 [ 156.254339][ T72] ? __pfx_default_device_exit_batch+0x10/0x10 [ 156.254520][ T72] ? ops_exit_list+0xb4/0x170 [ 156.254673][ T72] cleanup_net+0x4f3/0xb60 [ 156.254906][ T72] ? __pfx_lock_acquire.part.0+0x10/0x10 [ 156.255047][ T72] ? __pfx_cleanup_net+0x10/0x10 [ 156.255189][ T72] ? trace_lock_acquire+0x135/0x1c0 [ 156.255340][ T72] ? process_one_work+0xde2/0x1730 [ 156.255491][ T72] ? lock_acquire+0x32/0xc0 [ 156.255638][ T72] ? process_one_work+0xde2/0x1730 [ 156.255884][ T72] process_one_work+0xe2c/0x1730 [ 156.256034][ T72] ? __pfx___lock_release+0x10/0x10 [ 156.256186][ T72] ? __pfx_process_one_work+0x10/0x10 [ 156.256340][ T72] ? assign_work+0x16c/0x240 [ 156.256485][ T72] worker_thread+0x587/0xd30 [ 156.256627][ T72] ? lockdep_hardirqs_on_prepare.part.0+0x1af/0x370 [ 156.256817][ T72] ? __pfx_worker_thread+0x10/0x10 [ 156.256968][ T72] ? __pfx_worker_thread+0x10/0x10 [ 156.257121][ T72] kthread+0x28a/0x350 [ 156.257326][ T72] ? __pfx_kthread+0x10/0x10 [ 156.257478][ T72] ret_from_fork+0x31/0x70 [ 156.257627][ T72] ? __pfx_kthread+0x10/0x10 [ 156.257775][ T72] ret_from_fork_asm+0x1a/0x30 [ 156.258003][ T72]