[ 221.225818][ T10] [ 221.225996][ T10] ===================================================== [ 221.226187][ T10] WARNING: SOFTIRQ-safe -> SOFTIRQ-unsafe lock order detected [ 221.226416][ T10] 6.9.0-rc1-virtme #1 Not tainted [ 221.226583][ T10] ----------------------------------------------------- [ 221.226766][ T10] kworker/u16:0/10 [HC0[0]:SC0[2]:HE1:SE0] is trying to acquire: [ 221.226987][ T10] ffff888001a70968 (&p->alloc_lock){+.+.}-{2:2}, at: __get_task_comm+0x27/0x70 [ 221.227258][ T10] [ 221.227258][ T10] and this task is already holding: [ 221.227472][ T10] ffff88803603f218 (&ul->lock){+.-.}-{2:2}, at: rt6_uncached_list_flush_dev+0x138/0x840 [ 221.227740][ T10] which would create a new lock dependency: [ 221.227918][ T10] (&ul->lock){+.-.}-{2:2} -> (&p->alloc_lock){+.+.}-{2:2} [ 221.228138][ T10] [ 221.228138][ T10] but this new dependency connects a SOFTIRQ-irq-safe lock: [ 221.228392][ T10] (&ul->lock){+.-.}-{2:2} [ 221.228396][ T10] [ 221.228396][ T10] ... which became SOFTIRQ-irq-safe at: [ 221.228765][ T10] __lock_acquire+0x797/0x1570 [ 221.228918][ T10] lock_acquire.part.0+0xeb/0x330 [ 221.229072][ T10] _raw_spin_lock_bh+0x38/0x50 [ 221.229220][ T10] rt6_uncached_list_del+0x77/0x200 [ 221.229373][ T10] ip6_dst_destroy+0x74/0x1e0 [ 221.229520][ T10] dst_destroy+0xbc/0x370 [ 221.229663][ T10] rcu_do_batch+0x3c0/0xfb0 [ 221.229815][ T10] rcu_core+0x2be/0x500 [ 221.229937][ T10] __do_softirq+0x1f8/0x5df [ 221.230085][ T10] irq_exit_rcu+0x97/0xc0 [ 221.230233][ T10] sysvec_apic_timer_interrupt+0x75/0x80 [ 221.230390][ T10] asm_sysvec_apic_timer_interrupt+0x1a/0x20 [ 221.230578][ T10] default_idle+0xf/0x20 [ 221.230690][ T10] default_idle_call+0x6d/0xb0 [ 221.230837][ T10] cpuidle_idle_call+0x1f4/0x280 [ 221.230990][ T10] do_idle+0xf9/0x160 [ 221.231100][ T10] cpu_startup_entry+0x54/0x60 [ 221.231250][ T10] rest_init+0x14f/0x260 [ 221.231360][ T10] start_kernel+0x318/0x3d0 [ 221.231519][ T10] x86_64_start_reservations+0x18/0x30 [ 221.231666][ T10] x86_64_start_kernel+0xba/0x110 [ 221.231818][ T10] common_startup_64+0x12c/0x138 [ 221.231971][ T10] [ 221.231971][ T10] to a SOFTIRQ-irq-unsafe lock: [ 221.232154][ T10] (&p->alloc_lock){+.+.}-{2:2} [ 221.232158][ T10] [ 221.232158][ T10] ... which became SOFTIRQ-irq-unsafe at: [ 221.232513][ T10] ... [ 221.232514][ T10] __lock_acquire+0x797/0x1570 [ 221.232738][ T10] lock_acquire.part.0+0xeb/0x330 [ 221.232889][ T10] _raw_spin_lock+0x30/0x40 [ 221.233035][ T10] set_mems_allowed+0x1d/0x210 [ 221.233181][ T10] kernel_init_freeable+0x72/0x310 [ 221.233327][ T10] kernel_init+0x20/0x200 [ 221.233476][ T10] ret_from_fork+0x31/0x70 [ 221.233625][ T10] ret_from_fork_asm+0x1a/0x30 [ 221.233777][ T10] [ 221.233777][ T10] other info that might help us debug this: [ 221.233777][ T10] [ 221.234058][ T10] Possible interrupt unsafe locking scenario: [ 221.234058][ T10] [ 221.234280][ T10] CPU0 CPU1 [ 221.234431][ T10] ---- ---- [ 221.234577][ T10] lock(&p->alloc_lock); [ 221.234697][ T10] local_irq_disable(); [ 221.234890][ T10] lock(&ul->lock); [ 221.235069][ T10] lock(&p->alloc_lock); [ 221.235259][ T10] [ 221.235372][ T10] lock(&ul->lock); [ 221.235500][ T10] [ 221.235500][ T10] *** DEADLOCK *** [ 221.235500][ T10] [ 221.235725][ T10] 5 locks held by kworker/u16:0/10: [ 221.235873][ T10] #0: ffff88800190a948 ((wq_completion)netns){+.+.}-{0:0}, at: process_one_work+0xda6/0x1730 [ 221.236177][ T10] #1: ffffc900000afda0 (net_cleanup_work){+.+.}-{0:0}, at: process_one_work+0xde2/0x1730 [ 221.236435][ T10] #2: ffffffffae99bc50 (pernet_ops_rwsem){++++}-{3:3}, at: cleanup_net+0xbc/0xb60 [ 221.236694][ T10] #3: ffffffffae9b7208 (rtnl_mutex){+.+.}-{3:3}, at: default_device_exit_batch+0x81/0x2d0 [ 221.236980][ T10] #4: ffff88803603f218 (&ul->lock){+.-.}-{2:2}, at: rt6_uncached_list_flush_dev+0x138/0x840 [ 221.237282][ T10] [ 221.237282][ T10] the dependencies between SOFTIRQ-irq-safe lock and the holding lock: [ 221.237578][ T10] -> (&ul->lock){+.-.}-{2:2} { [ 221.237732][ T10] HARDIRQ-ON-W at: [ 221.237850][ T10] __lock_acquire+0x797/0x1570 [ 221.238039][ T10] lock_acquire.part.0+0xeb/0x330 [ 221.238224][ T10] _raw_spin_lock_bh+0x38/0x50 [ 221.238413][ T10] rt6_uncached_list_add+0x55/0x1b0 [ 221.238601][ T10] icmp6_dst_alloc+0x2c0/0x450 [ 221.238787][ T10] mld_sendpack+0x529/0xbc0 [ 221.238976][ T10] mld_ifc_work+0x32/0x1f0 [ 221.239162][ T10] process_one_work+0xe2c/0x1730 [ 221.239344][ T10] worker_thread+0x587/0xd30 [ 221.239531][ T10] kthread+0x28a/0x350 [ 221.239680][ T10] ret_from_fork+0x31/0x70 [ 221.239866][ T10] ret_from_fork_asm+0x1a/0x30 [ 221.240054][ T10] IN-SOFTIRQ-W at: [ 221.240164][ T10] __lock_acquire+0x797/0x1570 [ 221.240350][ T10] lock_acquire.part.0+0xeb/0x330 [ 221.240535][ T10] _raw_spin_lock_bh+0x38/0x50 [ 221.240718][ T10] rt6_uncached_list_del+0x77/0x200 [ 221.240902][ T10] ip6_dst_destroy+0x74/0x1e0 [ 221.241088][ T10] dst_destroy+0xbc/0x370 [ 221.241272][ T10] rcu_do_batch+0x3c0/0xfb0 [ 221.241456][ T10] rcu_core+0x2be/0x500 [ 221.241646][ T10] __do_softirq+0x1f8/0x5df [ 221.241832][ T10] irq_exit_rcu+0x97/0xc0 [ 221.242015][ T10] sysvec_apic_timer_interrupt+0x75/0x80 [ 221.242240][ T10] asm_sysvec_apic_timer_interrupt+0x1a/0x20 [ 221.242540][ T10] default_idle+0xf/0x20 [ 221.242727][ T10] default_idle_call+0x6d/0xb0 [ 221.242912][ T10] cpuidle_idle_call+0x1f4/0x280 [ 221.243173][ T10] do_idle+0xf9/0x160 [ 221.243325][ T10] cpu_startup_entry+0x54/0x60 [ 221.243512][ T10] rest_init+0x14f/0x260 [ 221.243701][ T10] start_kernel+0x318/0x3d0 [ 221.243965][ T10] x86_64_start_reservations+0x18/0x30 [ 221.244152][ T10] x86_64_start_kernel+0xba/0x110 [ 221.244337][ T10] common_startup_64+0x12c/0x138 [ 221.244525][ T10] INITIAL USE at: [ 221.244637][ T10] __lock_acquire+0x797/0x1570 [ 221.244827][ T10] lock_acquire.part.0+0xeb/0x330 [ 221.245020][ T10] _raw_spin_lock_bh+0x38/0x50 [ 221.245295][ T10] rt6_uncached_list_add+0x55/0x1b0 [ 221.245483][ T10] icmp6_dst_alloc+0x2c0/0x450 [ 221.245669][ T10] mld_sendpack+0x529/0xbc0 [ 221.245972][ T10] mld_ifc_work+0x32/0x1f0 [ 221.246159][ T10] process_one_work+0xe2c/0x1730 [ 221.246346][ T10] worker_thread+0x587/0xd30 [ 221.246536][ T10] kthread+0x28a/0x350 [ 221.246688][ T10] ret_from_fork+0x31/0x70 [ 221.246877][ T10] ret_from_fork_asm+0x1a/0x30 [ 221.247058][ T10] } [ 221.247130][ T10] ... key at: [] __key.15+0x0/0x40 [ 221.247359][ T10] [ 221.247359][ T10] the dependencies between the lock to be acquired [ 221.247360][ T10] and SOFTIRQ-irq-unsafe lock: [ 221.247768][ T10] -> (&p->alloc_lock){+.+.}-{2:2} { [ 221.248024][ T10] HARDIRQ-ON-W at: [ 221.248139][ T10] __lock_acquire+0x797/0x1570 [ 221.248328][ T10] lock_acquire.part.0+0xeb/0x330 [ 221.248514][ T10] _raw_spin_lock+0x30/0x40 [ 221.248709][ T10] set_mems_allowed+0x1d/0x210 [ 221.248898][ T10] kernel_init_freeable+0x72/0x310 [ 221.249180][ T10] kernel_init+0x20/0x200 [ 221.249380][ T10] ret_from_fork+0x31/0x70 [ 221.249567][ T10] ret_from_fork_asm+0x1a/0x30 [ 221.249760][ T10] SOFTIRQ-ON-W at: [ 221.249969][ T10] __lock_acquire+0x797/0x1570 [ 221.250157][ T10] lock_acquire.part.0+0xeb/0x330 [ 221.250349][ T10] _raw_spin_lock+0x30/0x40 [ 221.250531][ T10] set_mems_allowed+0x1d/0x210 [ 221.250719][ T10] kernel_init_freeable+0x72/0x310 [ 221.250907][ T10] kernel_init+0x20/0x200 [ 221.251098][ T10] ret_from_fork+0x31/0x70 [ 221.251279][ T10] ret_from_fork_asm+0x1a/0x30 [ 221.251552][ T10] INITIAL USE at: [ 221.251744][ T10] __lock_acquire+0x797/0x1570 [ 221.251928][ T10] lock_acquire.part.0+0xeb/0x330 [ 221.252115][ T10] _raw_spin_lock+0x30/0x40 [ 221.252305][ T10] set_mems_allowed+0x1d/0x210 [ 221.252573][ T10] kernel_init_freeable+0x72/0x310 [ 221.252763][ T10] kernel_init+0x20/0x200 [ 221.252952][ T10] ret_from_fork+0x31/0x70 [ 221.253139][ T10] ret_from_fork_asm+0x1a/0x30 [ 221.253327][ T10] } [ 221.253413][ T10] ... key at: [] __key.388+0x0/0x40 [ 221.253726][ T10] ... acquired at: [ 221.253839][ T10] check_prev_add+0x194/0xce0 [ 221.253984][ T10] validate_chain+0x71d/0x9b0 [ 221.254140][ T10] __lock_acquire+0xaf0/0x1570 [ 221.254455][ T10] lock_acquire.part.0+0xeb/0x330 [ 221.254688][ T10] _raw_spin_lock+0x30/0x40 [ 221.254839][ T10] __get_task_comm+0x27/0x70 [ 221.254990][ T10] ref_tracker_alloc+0x2ee/0x490 [ 221.255141][ T10] rt6_uncached_list_flush_dev+0x494/0x840 [ 221.255327][ T10] rt6_disable_ip+0xd9/0x140 [ 221.255564][ T10] addrconf_ifdown.isra.0+0x103/0x1560 [ 221.255718][ T10] addrconf_notify+0xd1/0xd60 [ 221.255869][ T10] notifier_call_chain+0xcd/0x150 [ 221.256011][ T10] dev_close_many+0x2d8/0x650 [ 221.256164][ T10] unregister_netdevice_many_notify+0x3d5/0x1190 [ 221.256345][ T10] default_device_exit_batch+0x234/0x2d0 [ 221.256612][ T10] cleanup_net+0x4f3/0xb60 [ 221.256762][ T10] process_one_work+0xe2c/0x1730 [ 221.256920][ T10] worker_thread+0x587/0xd30 [ 221.257065][ T10] kthread+0x28a/0x350 [ 221.257176][ T10] ret_from_fork+0x31/0x70 [ 221.257401][ T10] ret_from_fork_asm+0x1a/0x30 [ 221.257631][ T10] [ 221.257709][ T10] [ 221.257709][ T10] stack backtrace: [ 221.257889][ T10] CPU: 0 PID: 10 Comm: kworker/u16:0 Not tainted 6.9.0-rc1-virtme #1 [ 221.258115][ T10] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.3-0-ga6ed6b701f0a-prebuilt.qemu.org 04/01/2014 [ 221.258521][ T10] Workqueue: netns cleanup_net [ 221.258679][ T10] Call Trace: [ 221.258798][ T10] [ 221.258875][ T10] dump_stack_lvl+0x82/0xd0 [ 221.259103][ T10] print_bad_irq_dependency+0x957/0xd40 [ 221.259252][ T10] ? __pfx_print_bad_irq_dependency+0x10/0x10 [ 221.259446][ T10] ? __pfx_usage_skip+0x10/0x10 [ 221.259672][ T10] ? __bfs+0x246/0x650 [ 221.259785][ T10] ? __pfx_usage_match+0x10/0x10 [ 221.259939][ T10] check_irq_usage+0x596/0x850 [ 221.260237][ T10] ? arch_stack_walk+0x8c/0xf0 [ 221.260471][ T10] ? __pfx_check_irq_usage+0x10/0x10 [ 221.260625][ T10] ? __bfs+0x246/0x650 [ 221.260737][ T10] ? __pfx_hlock_conflict+0x10/0x10 [ 221.260895][ T10] ? check_path.constprop.0+0x24/0x50 [ 221.261043][ T10] ? check_noncircular+0x14c/0x3e0 [ 221.261278][ T10] ? __pfx_check_noncircular+0x10/0x10 [ 221.261431][ T10] ? check_prev_add+0x194/0xce0 [ 221.261587][ T10] check_prev_add+0x194/0xce0 [ 221.261737][ T10] ? validate_chain+0x130/0x9b0 [ 221.261987][ T10] validate_chain+0x71d/0x9b0 [ 221.262138][ T10] ? mark_lock+0x38/0x3e0 [ 221.262252][ T10] ? __pfx_validate_chain+0x10/0x10 [ 221.262403][ T10] ? hlock_class+0x4e/0x130 [ 221.262552][ T10] ? mark_lock+0x38/0x3e0 [ 221.262669][ T10] __lock_acquire+0xaf0/0x1570 [ 221.262820][ T10] lock_acquire.part.0+0xeb/0x330 [ 221.262970][ T10] ? __get_task_comm+0x27/0x70 [ 221.263118][ T10] ? mark_lock+0x38/0x3e0 [ 221.263234][ T10] ? __pfx_lock_acquire.part.0+0x10/0x10 [ 221.263384][ T10] ? trace_lock_acquire+0x135/0x1c0 [ 221.263533][ T10] ? __get_task_comm+0x27/0x70 [ 221.263681][ T10] ? lock_acquire+0x32/0xc0 [ 221.263828][ T10] ? __get_task_comm+0x27/0x70 [ 221.263979][ T10] _raw_spin_lock+0x30/0x40 [ 221.264126][ T10] ? __get_task_comm+0x27/0x70 [ 221.264275][ T10] __get_task_comm+0x27/0x70 [ 221.264427][ T10] ref_tracker_alloc+0x2ee/0x490 [ 221.264653][ T10] ? __pfx_ref_tracker_alloc+0x10/0x10 [ 221.264800][ T10] ? __lock_release+0x103/0x460 [ 221.264949][ T10] ? rt6_uncached_list_flush_dev+0x494/0x840 [ 221.265132][ T10] ? rt6_disable_ip+0xd9/0x140 [ 221.265359][ T10] ? addrconf_ifdown.isra.0+0x103/0x1560 [ 221.265508][ T10] ? addrconf_notify+0xd1/0xd60 [ 221.265657][ T10] ? notifier_call_chain+0xcd/0x150 [ 221.265803][ T10] ? dev_close_many+0x2d8/0x650 [ 221.266053][ T10] ? unregister_netdevice_many_notify+0x3d5/0x1190 [ 221.266237][ T10] ? default_device_exit_batch+0x234/0x2d0 [ 221.266422][ T10] ? cleanup_net+0x4f3/0xb60 [ 221.266570][ T10] ? process_one_work+0xe2c/0x1730 [ 221.266719][ T10] ? worker_thread+0x587/0xd30 [ 221.266870][ T10] ? kthread+0x28a/0x350 [ 221.266981][ T10] ? ret_from_fork+0x31/0x70 [ 221.267133][ T10] ? ret_from_fork_asm+0x1a/0x30 [ 221.267283][ T10] ? in6_dev_get+0xcc/0x210 [ 221.267435][ T10] rt6_uncached_list_flush_dev+0x494/0x840 [ 221.267621][ T10] rt6_disable_ip+0xd9/0x140 [ 221.267770][ T10] ? __pfx_rt6_disable_ip+0x10/0x10 [ 221.267920][ T10] ? mark_lock+0x38/0x3e0 [ 221.268040][ T10] addrconf_ifdown.isra.0+0x103/0x1560 [ 221.268191][ T10] ? __try_to_del_timer_sync+0xe7/0x140 [ 221.268423][ T10] ? __pfx_addrconf_ifdown.isra.0+0x10/0x10 [ 221.268613][ T10] addrconf_notify+0xd1/0xd60 [ 221.268767][ T10] notifier_call_chain+0xcd/0x150 [ 221.268915][ T10] dev_close_many+0x2d8/0x650 [ 221.269067][ T10] ? __pfx_dev_close_many+0x10/0x10 [ 221.269212][ T10] ? default_device_exit_batch+0x81/0x2d0 [ 221.269530][ T10] ? trace_contention_end+0xdc/0x140 [ 221.269685][ T10] unregister_netdevice_many_notify+0x3d5/0x1190 [ 221.269867][ T10] ? mutex_is_locked+0x17/0x50 [ 221.270017][ T10] ? __pfx_unregister_netdevice_many_notify+0x10/0x10 [ 221.270204][ T10] ? __pfx_unregister_netdevice_queue+0x10/0x10 [ 221.270480][ T10] default_device_exit_batch+0x234/0x2d0 [ 221.270627][ T10] ? __pfx_default_device_exit_batch+0x10/0x10 [ 221.270818][ T10] ? ops_exit_list+0xb4/0x170 [ 221.270970][ T10] cleanup_net+0x4f3/0xb60 [ 221.271119][ T10] ? __pfx_lock_acquire.part.0+0x10/0x10 [ 221.271361][ T10] ? __pfx_cleanup_net+0x10/0x10 [ 221.271514][ T10] ? trace_lock_acquire+0x135/0x1c0 [ 221.271668][ T10] ? process_one_work+0xde2/0x1730 [ 221.271816][ T10] ? lock_acquire+0x32/0xc0 [ 221.272068][ T10] ? process_one_work+0xde2/0x1730 [ 221.272225][ T10] process_one_work+0xe2c/0x1730 [ 221.272376][ T10] ? __pfx___lock_release+0x10/0x10 [ 221.272529][ T10] ? __pfx_process_one_work+0x10/0x10 [ 221.272679][ T10] ? assign_work+0x16c/0x240 [ 221.272827][ T10] worker_thread+0x587/0xd30 [ 221.272981][ T10] ? __pfx_worker_thread+0x10/0x10 [ 221.273214][ T10] kthread+0x28a/0x350 [ 221.273326][ T10] ? __pfx_kthread+0x10/0x10 [ 221.273478][ T10] ret_from_fork+0x31/0x70 [ 221.273627][ T10] ? __pfx_kthread+0x10/0x10 [ 221.273777][ T10] ret_from_fork_asm+0x1a/0x30 [ 221.273932][ T10]