[ 24.640067][ T241] ip (241) used greatest stack depth: 23504 bytes left [ 68.473377][ T10] [ 68.473484][ T10] ===================================================== [ 68.473660][ T10] WARNING: SOFTIRQ-safe -> SOFTIRQ-unsafe lock order detected [ 68.473864][ T10] 6.9.0-rc1-virtme #1 Not tainted [ 68.474000][ T10] ----------------------------------------------------- [ 68.474178][ T10] kworker/u16:0/10 [HC0[0]:SC0[2]:HE1:SE0] is trying to acquire: [ 68.474378][ T10] ffff888001a70968 (&p->alloc_lock){+.+.}-{2:2}, at: __get_task_comm+0x27/0x70 [ 68.474631][ T10] [ 68.474631][ T10] and this task is already holding: [ 68.474832][ T10] ffff88803603f218 (&ul->lock){+.-.}-{2:2}, at: rt6_uncached_list_flush_dev+0x138/0x840 [ 68.475081][ T10] which would create a new lock dependency: [ 68.475253][ T10] (&ul->lock){+.-.}-{2:2} -> (&p->alloc_lock){+.+.}-{2:2} [ 68.475467][ T10] [ 68.475467][ T10] but this new dependency connects a SOFTIRQ-irq-safe lock: [ 68.475701][ T10] (&ul->lock){+.-.}-{2:2} [ 68.475705][ T10] [ 68.475705][ T10] ... which became SOFTIRQ-irq-safe at: [ 68.476034][ T10] __lock_acquire+0x797/0x1570 [ 68.476175][ T10] lock_acquire.part.0+0xeb/0x330 [ 68.476308][ T10] _raw_spin_lock_bh+0x38/0x50 [ 68.476448][ T10] rt6_uncached_list_del+0x77/0x200 [ 68.476593][ T10] ip6_dst_destroy+0x74/0x1e0 [ 68.476726][ T10] dst_destroy+0xbc/0x370 [ 68.476859][ T10] rcu_do_batch+0x3c0/0xfb0 [ 68.476995][ T10] rcu_core+0x2be/0x500 [ 68.477105][ T10] __do_softirq+0x1f8/0x5df [ 68.477240][ T10] irq_exit_rcu+0x97/0xc0 [ 68.477371][ T10] sysvec_apic_timer_interrupt+0x75/0x80 [ 68.477504][ T10] asm_sysvec_apic_timer_interrupt+0x1a/0x20 [ 68.477669][ T10] default_idle+0xf/0x20 [ 68.477775][ T10] default_idle_call+0x6d/0xb0 [ 68.477907][ T10] cpuidle_idle_call+0x1f4/0x280 [ 68.478042][ T10] do_idle+0xf9/0x160 [ 68.478142][ T10] cpu_startup_entry+0x54/0x60 [ 68.478272][ T10] start_secondary+0x21c/0x2b0 [ 68.478405][ T10] common_startup_64+0x12c/0x138 [ 68.478540][ T10] [ 68.478540][ T10] to a SOFTIRQ-irq-unsafe lock: [ 68.478708][ T10] (&p->alloc_lock){+.+.}-{2:2} [ 68.478712][ T10] [ 68.478712][ T10] ... which became SOFTIRQ-irq-unsafe at: [ 68.479039][ T10] ... [ 68.479040][ T10] __lock_acquire+0x797/0x1570 [ 68.479242][ T10] lock_acquire.part.0+0xeb/0x330 [ 68.479374][ T10] _raw_spin_lock+0x30/0x40 [ 68.479515][ T10] set_mems_allowed+0x1d/0x210 [ 68.479652][ T10] kernel_init_freeable+0x72/0x310 [ 68.479786][ T10] kernel_init+0x20/0x200 [ 68.479918][ T10] ret_from_fork+0x31/0x70 [ 68.480053][ T10] ret_from_fork_asm+0x1a/0x30 [ 68.480185][ T10] [ 68.480185][ T10] other info that might help us debug this: [ 68.480185][ T10] [ 68.480444][ T10] Possible interrupt unsafe locking scenario: [ 68.480444][ T10] [ 68.480640][ T10] CPU0 CPU1 [ 68.480770][ T10] ---- ---- [ 68.480899][ T10] lock(&p->alloc_lock); [ 68.481003][ T10] local_irq_disable(); [ 68.481176][ T10] lock(&ul->lock); [ 68.481340][ T10] lock(&p->alloc_lock); [ 68.481505][ T10] [ 68.481604][ T10] lock(&ul->lock); [ 68.481705][ T10] [ 68.481705][ T10] *** DEADLOCK *** [ 68.481705][ T10] [ 68.481898][ T10] 5 locks held by kworker/u16:0/10: [ 68.482035][ T10] #0: ffff88800190a948 ((wq_completion)netns){+.+.}-{0:0}, at: process_one_work+0xda6/0x1730 [ 68.482306][ T10] #1: ffffc900000afda0 (net_cleanup_work){+.+.}-{0:0}, at: process_one_work+0xde2/0x1730 [ 68.482543][ T10] #2: ffffffff9459bc50 (pernet_ops_rwsem){++++}-{3:3}, at: cleanup_net+0xbc/0xb60 [ 68.482798][ T10] #3: ffffffff945b7208 (rtnl_mutex){+.+.}-{3:3}, at: default_device_exit_batch+0x81/0x2d0 [ 68.483071][ T10] #4: ffff88803603f218 (&ul->lock){+.-.}-{2:2}, at: rt6_uncached_list_flush_dev+0x138/0x840 [ 68.483346][ T10] [ 68.483346][ T10] the dependencies between SOFTIRQ-irq-safe lock and the holding lock: [ 68.483601][ T10] -> (&ul->lock){+.-.}-{2:2} { [ 68.483738][ T10] HARDIRQ-ON-W at: [ 68.483840][ T10] __lock_acquire+0x797/0x1570 [ 68.484009][ T10] lock_acquire.part.0+0xeb/0x330 [ 68.484197][ T10] _raw_spin_lock_bh+0x38/0x50 [ 68.484364][ T10] rt6_uncached_list_add+0x55/0x1b0 [ 68.484529][ T10] icmp6_dst_alloc+0x2c0/0x450 [ 68.484695][ T10] mld_sendpack+0x529/0xbc0 [ 68.484865][ T10] mld_ifc_work+0x32/0x1f0 [ 68.485035][ T10] process_one_work+0xe2c/0x1730 [ 68.485204][ T10] worker_thread+0x587/0xd30 [ 68.485380][ T10] kthread+0x28a/0x350 [ 68.485530][ T10] ret_from_fork+0x31/0x70 [ 68.485700][ T10] ret_from_fork_asm+0x1a/0x30 [ 68.485874][ T10] IN-SOFTIRQ-W at: [ 68.485978][ T10] __lock_acquire+0x797/0x1570 [ 68.486149][ T10] lock_acquire.part.0+0xeb/0x330 [ 68.486333][ T10] _raw_spin_lock_bh+0x38/0x50 [ 68.486510][ T10] rt6_uncached_list_del+0x77/0x200 [ 68.486682][ T10] ip6_dst_destroy+0x74/0x1e0 [ 68.486855][ T10] dst_destroy+0xbc/0x370 [ 68.487040][ T10] rcu_do_batch+0x3c0/0xfb0 [ 68.487215][ T10] rcu_core+0x2be/0x500 [ 68.487401][ T10] __do_softirq+0x1f8/0x5df [ 68.487574][ T10] irq_exit_rcu+0x97/0xc0 [ 68.487755][ T10] sysvec_apic_timer_interrupt+0x75/0x80 [ 68.487961][ T10] asm_sysvec_apic_timer_interrupt+0x1a/0x20 [ 68.488168][ T10] default_idle+0xf/0x20 [ 68.488345][ T10] default_idle_call+0x6d/0xb0 [ 68.488516][ T10] cpuidle_idle_call+0x1f4/0x280 [ 68.488692][ T10] do_idle+0xf9/0x160 [ 68.488827][ T10] cpu_startup_entry+0x54/0x60 [ 68.489000][ T10] start_secondary+0x21c/0x2b0 [ 68.489182][ T10] common_startup_64+0x12c/0x138 [ 68.489353][ T10] INITIAL USE at: [ 68.489456][ T10] __lock_acquire+0x797/0x1570 [ 68.489620][ T10] lock_acquire.part.0+0xeb/0x330 [ 68.489792][ T10] _raw_spin_lock_bh+0x38/0x50 [ 68.489965][ T10] rt6_uncached_list_add+0x55/0x1b0 [ 68.490140][ T10] icmp6_dst_alloc+0x2c0/0x450 [ 68.490316][ T10] mld_sendpack+0x529/0xbc0 [ 68.490490][ T10] mld_ifc_work+0x32/0x1f0 [ 68.490663][ T10] process_one_work+0xe2c/0x1730 [ 68.490852][ T10] worker_thread+0x587/0xd30 [ 68.491031][ T10] kthread+0x28a/0x350 [ 68.491166][ T10] ret_from_fork+0x31/0x70 [ 68.491328][ T10] ret_from_fork_asm+0x1a/0x30 [ 68.491503][ T10] } [ 68.491576][ T10] ... key at: [] __key.15+0x0/0x40 [ 68.491785][ T10] [ 68.491785][ T10] the dependencies between the lock to be acquired [ 68.491786][ T10] and SOFTIRQ-irq-unsafe lock: [ 68.492164][ T10] -> (&p->alloc_lock){+.+.}-{2:2} { [ 68.492313][ T10] HARDIRQ-ON-W at: [ 68.492416][ T10] __lock_acquire+0x797/0x1570 [ 68.492605][ T10] lock_acquire.part.0+0xeb/0x330 [ 68.492785][ T10] _raw_spin_lock+0x30/0x40 [ 68.492960][ T10] set_mems_allowed+0x1d/0x210 [ 68.493129][ T10] kernel_init_freeable+0x72/0x310 [ 68.493303][ T10] kernel_init+0x20/0x200 [ 68.493558][ T10] ret_from_fork+0x31/0x70 [ 68.493743][ T10] ret_from_fork_asm+0x1a/0x30 [ 68.493922][ T10] SOFTIRQ-ON-W at: [ 68.494023][ T10] __lock_acquire+0x797/0x1570 [ 68.494282][ T10] lock_acquire.part.0+0xeb/0x330 [ 68.494459][ T10] _raw_spin_lock+0x30/0x40 [ 68.494632][ T10] set_mems_allowed+0x1d/0x210 [ 68.494883][ T10] kernel_init_freeable+0x72/0x310 [ 68.495075][ T10] kernel_init+0x20/0x200 [ 68.495244][ T10] ret_from_fork+0x31/0x70 [ 68.495509][ T10] ret_from_fork_asm+0x1a/0x30 [ 68.495695][ T10] INITIAL USE at: [ 68.495804][ T10] __lock_acquire+0x797/0x1570 [ 68.495980][ T10] lock_acquire.part.0+0xeb/0x330 [ 68.496158][ T10] _raw_spin_lock+0x30/0x40 [ 68.496493][ T10] set_mems_allowed+0x1d/0x210 [ 68.496673][ T10] kernel_init_freeable+0x72/0x310 [ 68.496845][ T10] kernel_init+0x20/0x200 [ 68.497108][ T10] ret_from_fork+0x31/0x70 [ 68.497285][ T10] ret_from_fork_asm+0x1a/0x30 [ 68.497459][ T10] } [ 68.497530][ T10] ... key at: [] __key.388+0x0/0x40 [ 68.497751][ T10] ... acquired at: [ 68.497852][ T10] check_prev_add+0x194/0xce0 [ 68.497996][ T10] validate_chain+0x71d/0x9b0 [ 68.498229][ T10] __lock_acquire+0xaf0/0x1570 [ 68.498370][ T10] lock_acquire.part.0+0xeb/0x330 [ 68.498510][ T10] _raw_spin_lock+0x30/0x40 [ 68.498748][ T10] __get_task_comm+0x27/0x70 [ 68.498885][ T10] ref_tracker_alloc+0x2ee/0x490 [ 68.499027][ T10] rt6_uncached_list_flush_dev+0x494/0x840 [ 68.499300][ T10] rt6_disable_ip+0xd9/0x140 [ 68.499443][ T10] addrconf_ifdown.isra.0+0x103/0x1560 [ 68.499584][ T10] addrconf_notify+0xd1/0xd60 [ 68.499720][ T10] notifier_call_chain+0xcd/0x150 [ 68.499858][ T10] unregister_netdevice_many_notify+0x548/0x1190 [ 68.500032][ T10] default_device_exit_batch+0x234/0x2d0 [ 68.500201][ T10] cleanup_net+0x4f3/0xb60 [ 68.500412][ T10] process_one_work+0xe2c/0x1730 [ 68.500542][ T10] worker_thread+0x587/0xd30 [ 68.500677][ T10] kthread+0x28a/0x350 [ 68.500776][ T10] ret_from_fork+0x31/0x70 [ 68.501005][ T10] ret_from_fork_asm+0x1a/0x30 [ 68.501138][ T10] [ 68.501206][ T10] [ 68.501206][ T10] stack backtrace: [ 68.501365][ T10] CPU: 0 PID: 10 Comm: kworker/u16:0 Not tainted 6.9.0-rc1-virtme #1 [ 68.501564][ T10] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.3-0-ga6ed6b701f0a-prebuilt.qemu.org 04/01/2014 [ 68.501857][ T10] Workqueue: netns cleanup_net [ 68.501994][ T10] Call Trace: [ 68.502105][ T10] [ 68.502175][ T10] dump_stack_lvl+0x82/0xd0 [ 68.502315][ T10] print_bad_irq_dependency+0x957/0xd40 [ 68.502457][ T10] ? __pfx_print_bad_irq_dependency+0x10/0x10 [ 68.502647][ T10] ? __pfx_usage_skip+0x10/0x10 [ 68.502870][ T10] ? __bfs+0x246/0x650 [ 68.502973][ T10] ? __pfx_usage_match+0x10/0x10 [ 68.503112][ T10] check_irq_usage+0x596/0x850 [ 68.503249][ T10] ? arch_stack_walk+0x8c/0xf0 [ 68.503463][ T10] ? __pfx_check_irq_usage+0x10/0x10 [ 68.503595][ T10] ? __bfs+0x246/0x650 [ 68.503694][ T10] ? __pfx_hlock_conflict+0x10/0x10 [ 68.503826][ T10] ? check_path.constprop.0+0x24/0x50 [ 68.503964][ T10] ? check_noncircular+0x14c/0x3e0 [ 68.504247][ T10] ? __pfx_check_noncircular+0x10/0x10 [ 68.504383][ T10] ? check_prev_add+0x194/0xce0 [ 68.504514][ T10] check_prev_add+0x194/0xce0 [ 68.504649][ T10] ? validate_chain+0x130/0x9b0 [ 68.504855][ T10] validate_chain+0x71d/0x9b0 [ 68.504991][ T10] ? mark_lock+0x38/0x3e0 [ 68.505091][ T10] ? __pfx_validate_chain+0x10/0x10 [ 68.505223][ T10] ? hlock_class+0x4e/0x130 [ 68.505353][ T10] ? mark_lock+0x38/0x3e0 [ 68.505528][ T10] __lock_acquire+0xaf0/0x1570 [ 68.505668][ T10] lock_acquire.part.0+0xeb/0x330 [ 68.505799][ T10] ? __get_task_comm+0x27/0x70 [ 68.505935][ T10] ? mark_lock+0x38/0x3e0 [ 68.506109][ T10] ? __pfx_lock_acquire.part.0+0x10/0x10 [ 68.506240][ T10] ? trace_lock_acquire+0x135/0x1c0 [ 68.506380][ T10] ? __get_task_comm+0x27/0x70 [ 68.506516][ T10] ? lock_acquire+0x32/0xc0 [ 68.506651][ T10] ? __get_task_comm+0x27/0x70 [ 68.506865][ T10] _raw_spin_lock+0x30/0x40 [ 68.507010][ T10] ? __get_task_comm+0x27/0x70 [ 68.507151][ T10] __get_task_comm+0x27/0x70 [ 68.507285][ T10] ref_tracker_alloc+0x2ee/0x490 [ 68.507498][ T10] ? __pfx_ref_tracker_alloc+0x10/0x10 [ 68.507632][ T10] ? __lock_release+0x103/0x460 [ 68.507764][ T10] ? rt6_uncached_list_flush_dev+0x494/0x840 [ 68.507928][ T10] ? rt6_disable_ip+0xd9/0x140 [ 68.508137][ T10] ? addrconf_ifdown.isra.0+0x103/0x1560 [ 68.508273][ T10] ? addrconf_notify+0xd1/0xd60 [ 68.508407][ T10] ? notifier_call_chain+0xcd/0x150 [ 68.508551][ T10] ? unregister_netdevice_many_notify+0x548/0x1190 [ 68.508797][ T10] ? default_device_exit_batch+0x234/0x2d0 [ 68.509059][ T10] ? cleanup_net+0x4f3/0xb60 [ 68.509193][ T10] ? process_one_work+0xe2c/0x1730 [ 68.509335][ T10] ? worker_thread+0x587/0xd30 [ 68.509473][ T10] ? kthread+0x28a/0x350 [ 68.509575][ T10] ? ret_from_fork+0x31/0x70 [ 68.509713][ T10] ? ret_from_fork_asm+0x1a/0x30 [ 68.509854][ T10] ? in6_dev_get+0xcc/0x210 [ 68.510082][ T10] rt6_uncached_list_flush_dev+0x494/0x840 [ 68.510257][ T10] rt6_disable_ip+0xd9/0x140 [ 68.510402][ T10] ? __pfx_rt6_disable_ip+0x10/0x10 [ 68.510539][ T10] ? hlock_class+0x4e/0x130 [ 68.510755][ T10] addrconf_ifdown.isra.0+0x103/0x1560 [ 68.510896][ T10] ? __try_to_del_timer_sync+0xe7/0x140 [ 68.511051][ T10] ? __pfx_addrconf_ifdown.isra.0+0x10/0x10 [ 68.511225][ T10] addrconf_notify+0xd1/0xd60 [ 68.511447][ T10] notifier_call_chain+0xcd/0x150 [ 68.511586][ T10] unregister_netdevice_many_notify+0x548/0x1190 [ 68.511760][ T10] ? mutex_is_locked+0x17/0x50 [ 68.511900][ T10] ? __pfx_unregister_netdevice_many_notify+0x10/0x10 [ 68.512224][ T10] ? __pfx_unregister_netdevice_queue+0x10/0x10 [ 68.512400][ T10] default_device_exit_batch+0x234/0x2d0 [ 68.512537][ T10] ? __pfx_default_device_exit_batch+0x10/0x10 [ 68.512735][ T10] ? ops_exit_list+0xb4/0x170 [ 68.512874][ T10] cleanup_net+0x4f3/0xb60 [ 68.513101][ T10] ? __pfx_lock_acquire.part.0+0x10/0x10 [ 68.513234][ T10] ? __pfx_cleanup_net+0x10/0x10 [ 68.513378][ T10] ? trace_lock_acquire+0x135/0x1c0 [ 68.513524][ T10] ? process_one_work+0xde2/0x1730 [ 68.513658][ T10] ? lock_acquire+0x32/0xc0 [ 68.513791][ T10] ? process_one_work+0xde2/0x1730 [ 68.513926][ T10] process_one_work+0xe2c/0x1730 [ 68.514143][ T10] ? __pfx___lock_release+0x10/0x10 [ 68.514281][ T10] ? __pfx_process_one_work+0x10/0x10 [ 68.514418][ T10] ? assign_work+0x16c/0x240 [ 68.514559][ T10] worker_thread+0x587/0xd30 [ 68.514701][ T10] ? __pfx_worker_thread+0x10/0x10 [ 68.514920][ T10] kthread+0x28a/0x350 [ 68.515021][ T10] ? __pfx_kthread+0x10/0x10 [ 68.515157][ T10] ret_from_fork+0x31/0x70 [ 68.515294][ T10] ? __pfx_kthread+0x10/0x10 [ 68.515523][ T10] ret_from_fork_asm+0x1a/0x30 [ 68.515665][ T10]