[ 25.586521][ T72] [ 25.586698][ T72] ===================================================== [ 25.586873][ T72] WARNING: SOFTIRQ-safe -> SOFTIRQ-unsafe lock order detected [ 25.587078][ T72] 6.9.0-rc1-virtme #1 Not tainted [ 25.587219][ T72] ----------------------------------------------------- [ 25.587392][ T72] kworker/u16:1/72 [HC0[0]:SC0[2]:HE1:SE0] is trying to acquire: [ 25.587601][ T72] ffff888004b9cee8 (&p->alloc_lock){+.+.}-{2:2}, at: __get_task_comm+0x27/0x70 [ 25.587855][ T72] [ 25.587855][ T72] and this task is already holding: [ 25.588054][ T72] ffff88803613f218 (&ul->lock){+.-.}-{2:2}, at: rt6_uncached_list_flush_dev+0x138/0x840 [ 25.588315][ T72] which would create a new lock dependency: [ 25.588483][ T72] (&ul->lock){+.-.}-{2:2} -> (&p->alloc_lock){+.+.}-{2:2} [ 25.588691][ T72] [ 25.588691][ T72] but this new dependency connects a SOFTIRQ-irq-safe lock: [ 25.588924][ T72] (&ul->lock){+.-.}-{2:2} [ 25.588928][ T72] [ 25.588928][ T72] ... which became SOFTIRQ-irq-safe at: [ 25.589268][ T72] __lock_acquire+0x797/0x1570 [ 25.589411][ T72] lock_acquire.part.0+0xeb/0x330 [ 25.589548][ T72] _raw_spin_lock_bh+0x38/0x50 [ 25.589691][ T72] rt6_uncached_list_del+0x77/0x200 [ 25.589829][ T72] ip6_dst_destroy+0x74/0x1e0 [ 25.589968][ T72] dst_destroy+0xbc/0x370 [ 25.590113][ T72] rcu_do_batch+0x3c0/0xfb0 [ 25.590254][ T72] rcu_core+0x2be/0x500 [ 25.590355][ T72] __do_softirq+0x1f8/0x5df [ 25.590498][ T72] irq_exit_rcu+0x97/0xc0 [ 25.590643][ T72] sysvec_apic_timer_interrupt+0x75/0x80 [ 25.590781][ T72] asm_sysvec_apic_timer_interrupt+0x1a/0x20 [ 25.590957][ T72] default_idle+0xf/0x20 [ 25.591060][ T72] default_idle_call+0x6d/0xb0 [ 25.591197][ T72] cpuidle_idle_call+0x1f4/0x280 [ 25.591341][ T72] do_idle+0xf9/0x160 [ 25.591445][ T72] cpu_startup_entry+0x54/0x60 [ 25.591582][ T72] rest_init+0x14f/0x260 [ 25.591686][ T72] start_kernel+0x318/0x3d0 [ 25.591832][ T72] x86_64_start_reservations+0x18/0x30 [ 25.591973][ T72] x86_64_start_kernel+0xba/0x110 [ 25.592110][ T72] common_startup_64+0x12c/0x138 [ 25.592245][ T72] [ 25.592245][ T72] to a SOFTIRQ-irq-unsafe lock: [ 25.592417][ T72] (&p->alloc_lock){+.+.}-{2:2} [ 25.592421][ T72] [ 25.592421][ T72] ... which became SOFTIRQ-irq-unsafe at: [ 25.592764][ T72] ... [ 25.592765][ T72] __lock_acquire+0x797/0x1570 [ 25.592978][ T72] lock_acquire.part.0+0xeb/0x330 [ 25.593117][ T72] _raw_spin_lock+0x30/0x40 [ 25.593257][ T72] set_mems_allowed+0x1d/0x210 [ 25.593398][ T72] kernel_init_freeable+0x72/0x310 [ 25.593619][ T72] kernel_init+0x20/0x200 [ 25.593758][ T72] ret_from_fork+0x31/0x70 [ 25.593897][ T72] ret_from_fork_asm+0x1a/0x30 [ 25.594034][ T72] [ 25.594034][ T72] other info that might help us debug this: [ 25.594034][ T72] [ 25.594383][ T72] Possible interrupt unsafe locking scenario: [ 25.594383][ T72] [ 25.594612][ T72] CPU0 CPU1 [ 25.594748][ T72] ---- ---- [ 25.594959][ T72] lock(&p->alloc_lock); [ 25.595151][ T72] local_irq_disable(); [ 25.595322][ T72] lock(&ul->lock); [ 25.595493][ T72] lock(&p->alloc_lock); [ 25.595666][ T72] [ 25.595770][ T72] lock(&ul->lock); [ 25.595878][ T72] [ 25.595878][ T72] *** DEADLOCK *** [ 25.595878][ T72] [ 25.596162][ T72] 5 locks held by kworker/u16:1/72: [ 25.596302][ T72] #0: ffff88800190a948 ((wq_completion)netns){+.+.}-{0:0}, at: process_one_work+0xda6/0x1730 [ 25.596670][ T72] #1: ffffc900004dfda0 (net_cleanup_work){+.+.}-{0:0}, at: process_one_work+0xde2/0x1730 [ 25.596920][ T72] #2: ffffffffb0b9bc50 (pernet_ops_rwsem){++++}-{3:3}, at: cleanup_net+0xbc/0xb60 [ 25.597165][ T72] #3: ffffffffb0bb7208 (rtnl_mutex){+.+.}-{3:3}, at: default_device_exit_batch+0x81/0x2d0 [ 25.597449][ T72] #4: ffff88803613f218 (&ul->lock){+.-.}-{2:2}, at: rt6_uncached_list_flush_dev+0x138/0x840 [ 25.597894][ T72] [ 25.597894][ T72] the dependencies between SOFTIRQ-irq-safe lock and the holding lock: [ 25.598161][ T72] -> (&ul->lock){+.-.}-{2:2} { [ 25.598386][ T72] HARDIRQ-ON-W at: [ 25.598487][ T72] __lock_acquire+0x797/0x1570 [ 25.598660][ T72] lock_acquire.part.0+0xeb/0x330 [ 25.598828][ T72] _raw_spin_lock_bh+0x38/0x50 [ 25.599081][ T72] rt6_uncached_list_add+0x55/0x1b0 [ 25.599253][ T72] icmp6_dst_alloc+0x2c0/0x450 [ 25.599423][ T72] mld_sendpack+0x529/0xbc0 [ 25.599600][ T72] mld_ifc_work+0x32/0x1f0 [ 25.599867][ T72] process_one_work+0xe2c/0x1730 [ 25.600038][ T72] worker_thread+0x587/0xd30 [ 25.600219][ T72] kthread+0x28a/0x350 [ 25.600361][ T72] ret_from_fork+0x31/0x70 [ 25.600532][ T72] ret_from_fork_asm+0x1a/0x30 [ 25.600703][ T72] IN-SOFTIRQ-W at: [ 25.600804][ T72] __lock_acquire+0x797/0x1570 [ 25.601056][ T72] lock_acquire.part.0+0xeb/0x330 [ 25.601228][ T72] _raw_spin_lock_bh+0x38/0x50 [ 25.601401][ T72] rt6_uncached_list_del+0x77/0x200 [ 25.601571][ T72] ip6_dst_destroy+0x74/0x1e0 [ 25.601818][ T72] dst_destroy+0xbc/0x370 [ 25.601988][ T72] rcu_do_batch+0x3c0/0xfb0 [ 25.602164][ T72] rcu_core+0x2be/0x500 [ 25.602414][ T72] __do_softirq+0x1f8/0x5df [ 25.602585][ T72] irq_exit_rcu+0x97/0xc0 [ 25.602758][ T72] sysvec_apic_timer_interrupt+0x75/0x80 [ 25.603043][ T72] asm_sysvec_apic_timer_interrupt+0x1a/0x20 [ 25.603251][ T72] default_idle+0xf/0x20 [ 25.603424][ T72] default_idle_call+0x6d/0xb0 [ 25.603671][ T72] cpuidle_idle_call+0x1f4/0x280 [ 25.603841][ T72] do_idle+0xf9/0x160 [ 25.603979][ T72] cpu_startup_entry+0x54/0x60 [ 25.604151][ T72] rest_init+0x14f/0x260 [ 25.604401][ T72] start_kernel+0x318/0x3d0 [ 25.604600][ T72] x86_64_start_reservations+0x18/0x30 [ 25.604771][ T72] x86_64_start_kernel+0xba/0x110 [ 25.605021][ T72] common_startup_64+0x12c/0x138 [ 25.605278][ T72] INITIAL USE at: [ 25.605381][ T72] __lock_acquire+0x797/0x1570 [ 25.605563][ T72] lock_acquire.part.0+0xeb/0x330 [ 25.605824][ T72] _raw_spin_lock_bh+0x38/0x50 [ 25.605998][ T72] rt6_uncached_list_add+0x55/0x1b0 [ 25.606178][ T72] icmp6_dst_alloc+0x2c0/0x450 [ 25.606350][ T72] mld_sendpack+0x529/0xbc0 [ 25.606524][ T72] mld_ifc_work+0x32/0x1f0 [ 25.606782][ T72] process_one_work+0xe2c/0x1730 [ 25.606967][ T72] worker_thread+0x587/0xd30 [ 25.607140][ T72] kthread+0x28a/0x350 [ 25.607279][ T72] ret_from_fork+0x31/0x70 [ 25.607539][ T72] ret_from_fork_asm+0x1a/0x30 [ 25.607711][ T72] } [ 25.607784][ T72] ... key at: [] __key.15+0x0/0x40 [ 25.607993][ T72] [ 25.607993][ T72] the dependencies between the lock to be acquired [ 25.607994][ T72] and SOFTIRQ-irq-unsafe lock: [ 25.608431][ T72] -> (&p->alloc_lock){+.+.}-{2:2} { [ 25.608575][ T72] HARDIRQ-ON-W at: [ 25.608684][ T72] __lock_acquire+0x797/0x1570 [ 25.608944][ T72] lock_acquire.part.0+0xeb/0x330 [ 25.609119][ T72] _raw_spin_lock+0x30/0x40 [ 25.609299][ T72] set_mems_allowed+0x1d/0x210 [ 25.609551][ T72] kernel_init_freeable+0x72/0x310 [ 25.609721][ T72] kernel_init+0x20/0x200 [ 25.609972][ T72] ret_from_fork+0x31/0x70 [ 25.610168][ T72] ret_from_fork_asm+0x1a/0x30 [ 25.610342][ T72] SOFTIRQ-ON-W at: [ 25.610562][ T72] __lock_acquire+0x797/0x1570 [ 25.610736][ T72] lock_acquire.part.0+0xeb/0x330 [ 25.610911][ T72] _raw_spin_lock+0x30/0x40 [ 25.611082][ T72] set_mems_allowed+0x1d/0x210 [ 25.611260][ T72] kernel_init_freeable+0x72/0x310 [ 25.611433][ T72] kernel_init+0x20/0x200 [ 25.611606][ T72] ret_from_fork+0x31/0x70 [ 25.611860][ T72] ret_from_fork_asm+0x1a/0x30 [ 25.612117][ T72] INITIAL USE at: [ 25.612220][ T72] __lock_acquire+0x797/0x1570 [ 25.612391][ T72] lock_acquire.part.0+0xeb/0x330 [ 25.612572][ T72] _raw_spin_lock+0x30/0x40 [ 25.612744][ T72] set_mems_allowed+0x1d/0x210 [ 25.613005][ T72] kernel_init_freeable+0x72/0x310 [ 25.613178][ T72] kernel_init+0x20/0x200 [ 25.613348][ T72] ret_from_fork+0x31/0x70 [ 25.613608][ T72] ret_from_fork_asm+0x1a/0x30 [ 25.613775][ T72] } [ 25.613853][ T72] ... key at: [] __key.388+0x0/0x40 [ 25.614060][ T72] ... acquired at: [ 25.614239][ T72] check_prev_add+0x194/0xce0 [ 25.614377][ T72] validate_chain+0x71d/0x9b0 [ 25.614596][ T72] __lock_acquire+0xaf0/0x1570 [ 25.614734][ T72] lock_acquire.part.0+0xeb/0x330 [ 25.614872][ T72] _raw_spin_lock+0x30/0x40 [ 25.615095][ T72] __get_task_comm+0x27/0x70 [ 25.615241][ T72] ref_tracker_alloc+0x2ee/0x490 [ 25.615378][ T72] rt6_uncached_list_flush_dev+0x494/0x840 [ 25.615548][ T72] rt6_disable_ip+0xd9/0x140 [ 25.615764][ T72] addrconf_ifdown.isra.0+0x103/0x1560 [ 25.615906][ T72] addrconf_notify+0xd1/0xd60 [ 25.616046][ T72] notifier_call_chain+0xcd/0x150 [ 25.616181][ T72] dev_close_many+0x2d8/0x650 [ 25.616320][ T72] unregister_netdevice_many_notify+0x3d5/0x1190 [ 25.616600][ T72] default_device_exit_batch+0x234/0x2d0 [ 25.616769][ T72] cleanup_net+0x4f3/0xb60 [ 25.616911][ T72] process_one_work+0xe2c/0x1730 [ 25.617048][ T72] worker_thread+0x587/0xd30 [ 25.617185][ T72] kthread+0x28a/0x350 [ 25.617287][ T72] ret_from_fork+0x31/0x70 [ 25.617434][ T72] ret_from_fork_asm+0x1a/0x30 [ 25.617570][ T72] [ 25.617639][ T72] [ 25.617639][ T72] stack backtrace: [ 25.617880][ T72] CPU: 0 PID: 72 Comm: kworker/u16:1 Not tainted 6.9.0-rc1-virtme #1 [ 25.618166][ T72] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.3-0-ga6ed6b701f0a-prebuilt.qemu.org 04/01/2014 [ 25.618471][ T72] Workqueue: netns cleanup_net [ 25.618699][ T72] Call Trace: [ 25.618808][ T72] [ 25.618880][ T72] dump_stack_lvl+0x82/0xd0 [ 25.619020][ T72] print_bad_irq_dependency+0x957/0xd40 [ 25.619159][ T72] ? __pfx_print_bad_irq_dependency+0x10/0x10 [ 25.619331][ T72] ? __pfx_usage_skip+0x10/0x10 [ 25.619472][ T72] ? __bfs+0x246/0x650 [ 25.619574][ T72] ? __pfx_usage_match+0x10/0x10 [ 25.619711][ T72] check_irq_usage+0x596/0x850 [ 25.619937][ T72] ? arch_stack_walk+0x8c/0xf0 [ 25.620076][ T72] ? __pfx_check_irq_usage+0x10/0x10 [ 25.620220][ T72] ? __bfs+0x246/0x650 [ 25.620326][ T72] ? __pfx_hlock_conflict+0x10/0x10 [ 25.620467][ T72] ? check_path.constprop.0+0x24/0x50 [ 25.620683][ T72] ? check_noncircular+0x14c/0x3e0 [ 25.620820][ T72] ? __pfx_check_noncircular+0x10/0x10 [ 25.620959][ T72] ? check_prev_add+0x194/0xce0 [ 25.621096][ T72] check_prev_add+0x194/0xce0 [ 25.621308][ T72] ? validate_chain+0x130/0x9b0 [ 25.621446][ T72] validate_chain+0x71d/0x9b0 [ 25.621586][ T72] ? mark_lock+0x38/0x3e0 [ 25.621690][ T72] ? __pfx_validate_chain+0x10/0x10 [ 25.621906][ T72] ? hlock_class+0x4e/0x130 [ 25.622039][ T72] ? mark_lock+0x38/0x3e0 [ 25.622143][ T72] __lock_acquire+0xaf0/0x1570 [ 25.622279][ T72] lock_acquire.part.0+0xeb/0x330 [ 25.622415][ T72] ? __get_task_comm+0x27/0x70 [ 25.622640][ T72] ? mark_lock+0x38/0x3e0 [ 25.622742][ T72] ? __pfx_lock_acquire.part.0+0x10/0x10 [ 25.622879][ T72] ? trace_lock_acquire+0x135/0x1c0 [ 25.623017][ T72] ? __get_task_comm+0x27/0x70 [ 25.623153][ T72] ? lock_acquire+0x32/0xc0 [ 25.623290][ T72] ? __get_task_comm+0x27/0x70 [ 25.623429][ T72] _raw_spin_lock+0x30/0x40 [ 25.623573][ T72] ? __get_task_comm+0x27/0x70 [ 25.623711][ T72] __get_task_comm+0x27/0x70 [ 25.623936][ T72] ref_tracker_alloc+0x2ee/0x490 [ 25.624083][ T72] ? __pfx_ref_tracker_alloc+0x10/0x10 [ 25.624220][ T72] ? __lock_release+0x103/0x460 [ 25.624358][ T72] ? rt6_uncached_list_flush_dev+0x494/0x840 [ 25.624535][ T72] ? rt6_disable_ip+0xd9/0x140 [ 25.624757][ T72] ? addrconf_ifdown.isra.0+0x103/0x1560 [ 25.624895][ T72] ? addrconf_notify+0xd1/0xd60 [ 25.625037][ T72] ? notifier_call_chain+0xcd/0x150 [ 25.625174][ T72] ? dev_close_many+0x2d8/0x650 [ 25.625310][ T72] ? unregister_netdevice_many_notify+0x3d5/0x1190 [ 25.625558][ T72] ? default_device_exit_batch+0x234/0x2d0 [ 25.625731][ T72] ? cleanup_net+0x4f3/0xb60 [ 25.625860][ T72] ? process_one_work+0xe2c/0x1730 [ 25.626076][ T72] ? worker_thread+0x587/0xd30 [ 25.626214][ T72] ? kthread+0x28a/0x350 [ 25.626319][ T72] ? ret_from_fork+0x31/0x70 [ 25.626558][ T72] ? ret_from_fork_asm+0x1a/0x30 [ 25.626697][ T72] ? in6_dev_get+0xcc/0x210 [ 25.626831][ T72] rt6_uncached_list_flush_dev+0x494/0x840 [ 25.627006][ T72] rt6_disable_ip+0xd9/0x140 [ 25.627152][ T72] ? __pfx_rt6_disable_ip+0x10/0x10 [ 25.627288][ T72] ? mark_lock+0x38/0x3e0 [ 25.627391][ T72] addrconf_ifdown.isra.0+0x103/0x1560 [ 25.627534][ T72] ? __try_to_del_timer_sync+0xe7/0x140 [ 25.627679][ T72] ? __pfx_addrconf_ifdown.isra.0+0x10/0x10 [ 25.627928][ T72] addrconf_notify+0xd1/0xd60 [ 25.628067][ T72] notifier_call_chain+0xcd/0x150 [ 25.628204][ T72] dev_close_many+0x2d8/0x650 [ 25.628345][ T72] ? __pfx_dev_close_many+0x10/0x10 [ 25.628567][ T72] ? default_device_exit_batch+0x81/0x2d0 [ 25.628703][ T72] ? trace_contention_end+0xdc/0x140 [ 25.628840][ T72] unregister_netdevice_many_notify+0x3d5/0x1190 [ 25.629018][ T72] ? mutex_is_locked+0x17/0x50 [ 25.629157][ T72] ? __pfx_unregister_netdevice_many_notify+0x10/0x10 [ 25.629327][ T72] ? __pfx_unregister_netdevice_queue+0x10/0x10 [ 25.629498][ T72] default_device_exit_batch+0x234/0x2d0 [ 25.629639][ T72] ? __pfx_default_device_exit_batch+0x10/0x10 [ 25.629897][ T72] ? ops_exit_list+0xb4/0x170 [ 25.630034][ T72] cleanup_net+0x4f3/0xb60 [ 25.630183][ T72] ? __pfx_lock_acquire.part.0+0x10/0x10 [ 25.630430][ T72] ? __pfx_cleanup_net+0x10/0x10 [ 25.630565][ T72] ? trace_lock_acquire+0x135/0x1c0 [ 25.630703][ T72] ? process_one_work+0xde2/0x1730 [ 25.630845][ T72] ? lock_acquire+0x32/0xc0 [ 25.630985][ T72] ? process_one_work+0xde2/0x1730 [ 25.631195][ T72] process_one_work+0xe2c/0x1730 [ 25.631342][ T72] ? __pfx___lock_release+0x10/0x10 [ 25.631483][ T72] ? __pfx_process_one_work+0x10/0x10 [ 25.631634][ T72] ? assign_work+0x16c/0x240 [ 25.631847][ T72] worker_thread+0x587/0xd30 [ 25.631984][ T72] ? lockdep_hardirqs_on_prepare.part.0+0x1af/0x370 [ 25.632150][ T72] ? __pfx_worker_thread+0x10/0x10 [ 25.632287][ T72] ? __pfx_worker_thread+0x10/0x10 [ 25.632507][ T72] kthread+0x28a/0x350 [ 25.632610][ T72] ? __pfx_kthread+0x10/0x10 [ 25.632749][ T72] ret_from_fork+0x31/0x70 [ 25.632885][ T72] ? __pfx_kthread+0x10/0x10 [ 25.633023][ T72] ret_from_fork_asm+0x1a/0x30 [ 25.633241][ T72]