[ 25.707804][ T260] ip (260) used greatest stack depth: 22752 bytes left [ 31.251498][ T297] netem: version 1.3 [ 144.813863][ T73] [ 144.813956][ T73] ====================================================== [ 144.814124][ T73] WARNING: possible circular locking dependency detected [ 144.814276][ T73] 6.9.0-rc2-virtme #1 Not tainted [ 144.814400][ T73] ------------------------------------------------------ [ 144.814555][ T73] kworker/u16:1/73 is trying to acquire lock: [ 144.814713][ T73] ffff888006677f18 ((&tw->tw_timer)){+.-.}-{0:0}, at: __timer_delete_sync+0xd3/0x110 [ 144.814941][ T73] [ 144.814941][ T73] but task is already holding lock: [ 144.815120][ T73] ffff888003e93958 (&hashinfo->ehash_locks[i]){+.-.}-{2:2}, at: inet_twsk_deschedule_put+0xe0/0x150 [ 144.815376][ T73] [ 144.815376][ T73] which lock already depends on the new lock. [ 144.815376][ T73] [ 144.815616][ T73] [ 144.815616][ T73] the existing dependency chain (in reverse order) is: [ 144.815828][ T73] [ 144.815828][ T73] -> #1 (&hashinfo->ehash_locks[i]){+.-.}-{2:2}: [ 144.816012][ T73] __lock_acquire+0xaf0/0x1570 [ 144.816139][ T73] lock_acquire.part.0+0xeb/0x330 [ 144.816263][ T73] _raw_spin_lock+0x30/0x40 [ 144.816386][ T73] tw_timer_handler+0xe9/0x130 [ 144.816507][ T73] call_timer_fn+0x13b/0x230 [ 144.816637][ T73] __run_timers+0x545/0x810 [ 144.816758][ T73] run_timer_softirq+0x7a/0x1b0 [ 144.816880][ T73] __do_softirq+0x1f8/0x5df [ 144.817003][ T73] irq_exit_rcu+0x97/0xc0 [ 144.817126][ T73] sysvec_apic_timer_interrupt+0x75/0x80 [ 144.817282][ T73] asm_sysvec_apic_timer_interrupt+0x1a/0x20 [ 144.817435][ T73] default_idle+0xf/0x20 [ 144.817561][ T73] default_idle_call+0x6d/0xb0 [ 144.817682][ T73] cpuidle_idle_call+0x1f4/0x280 [ 144.817804][ T73] do_idle+0xf9/0x160 [ 144.817923][ T73] cpu_startup_entry+0x54/0x60 [ 144.818045][ T73] start_secondary+0x21c/0x2b0 [ 144.818166][ T73] common_startup_64+0x12c/0x138 [ 144.818287][ T73] [ 144.818287][ T73] -> #0 ((&tw->tw_timer)){+.-.}-{0:0}: [ 144.818476][ T73] check_prev_add+0x182/0xce0 [ 144.818610][ T73] validate_chain+0x71d/0x9b0 [ 144.818730][ T73] __lock_acquire+0xaf0/0x1570 [ 144.818850][ T73] lock_acquire.part.0+0xeb/0x330 [ 144.818972][ T73] __timer_delete_sync+0xe1/0x110 [ 144.819094][ T73] inet_twsk_deschedule_put+0xec/0x150 [ 144.819243][ T73] inet_twsk_purge+0x4c8/0x660 [ 144.819364][ T73] tcp_twsk_purge+0x112/0x160 [ 144.819486][ T73] tcp_sk_exit_batch+0x17/0x120 [ 144.819612][ T73] cleanup_net+0x4f3/0xa20 [ 144.819734][ T73] process_one_work+0xe2c/0x1730 [ 144.819856][ T73] worker_thread+0x587/0xd30 [ 144.819977][ T73] kthread+0x28a/0x350 [ 144.820098][ T73] ret_from_fork+0x31/0x70 [ 144.820220][ T73] ret_from_fork_asm+0x1a/0x30 [ 144.820342][ T73] [ 144.820342][ T73] other info that might help us debug this: [ 144.820342][ T73] [ 144.820574][ T73] Possible unsafe locking scenario: [ 144.820574][ T73] [ 144.820755][ T73] CPU0 CPU1 [ 144.820874][ T73] ---- ---- [ 144.820994][ T73] lock(&hashinfo->ehash_locks[i]); [ 144.821115][ T73] lock((&tw->tw_timer)); [ 144.821266][ T73] lock(&hashinfo->ehash_locks[i]); [ 144.821446][ T73] lock((&tw->tw_timer)); [ 144.821567][ T73] [ 144.821567][ T73] *** DEADLOCK *** [ 144.821567][ T73] [ 144.821756][ T73] 4 locks held by kworker/u16:1/73: [ 144.821886][ T73] #0: ffff8880018fa948 ((wq_completion)netns){+.+.}-{0:0}, at: process_one_work+0xda6/0x1730 [ 144.822134][ T73] #1: ffffc900004efda0 (net_cleanup_work){+.+.}-{0:0}, at: process_one_work+0xde2/0x1730 [ 144.822356][ T73] #2: ffffffff9ab9de50 (pernet_ops_rwsem){++++}-{3:3}, at: cleanup_net+0xbc/0xa20 [ 144.822575][ T73] #3: ffff888003e93958 (&hashinfo->ehash_locks[i]){+.-.}-{2:2}, at: inet_twsk_deschedule_put+0xe0/0x150 [ 144.822821][ T73] [ 144.822821][ T73] stack backtrace: [ 144.822971][ T73] CPU: 0 PID: 73 Comm: kworker/u16:1 Not tainted 6.9.0-rc2-virtme #1 [ 144.823152][ T73] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.3-0-ga6ed6b701f0a-prebuilt.qemu.org 04/01/2014 [ 144.823420][ T73] Workqueue: netns cleanup_net [ 144.823553][ T73] Call Trace: [ 144.823654][ T73] [ 144.823718][ T73] dump_stack_lvl+0x82/0xd0 [ 144.823839][ T73] check_noncircular+0x2f9/0x3e0 [ 144.823964][ T73] ? __pfx_check_noncircular+0x10/0x10 [ 144.824094][ T73] ? __pfx_stack_trace_save+0x10/0x10 [ 144.824217][ T73] ? alloc_chain_hlocks+0x4e0/0x720 [ 144.824340][ T73] check_prev_add+0x182/0xce0 [ 144.824463][ T73] validate_chain+0x71d/0x9b0 [ 144.824590][ T73] ? __pfx_validate_chain+0x10/0x10 [ 144.824712][ T73] ? hlock_class+0x4e/0x130 [ 144.824838][ T73] ? mark_lock+0x38/0x3e0 [ 144.824933][ T73] __lock_acquire+0xaf0/0x1570 [ 144.825056][ T73] ? __lock_acquire+0xa40/0x1570 [ 144.825181][ T73] ? __timer_delete_sync+0xd3/0x110 [ 144.825301][ T73] lock_acquire.part.0+0xeb/0x330 [ 144.825423][ T73] ? __timer_delete_sync+0xd3/0x110 [ 144.825544][ T73] ? inet_twsk_deschedule_put+0xe0/0x150 [ 144.825666][ T73] ? __pfx_lock_acquire.part.0+0x10/0x10 [ 144.825792][ T73] ? trace_lock_acquire+0x135/0x1c0 [ 144.825917][ T73] ? __timer_delete_sync+0xd3/0x110 [ 144.826037][ T73] ? lock_acquire+0x32/0xc0 [ 144.826157][ T73] ? __timer_delete_sync+0xd3/0x110 [ 144.826279][ T73] __timer_delete_sync+0xe1/0x110 [ 144.826399][ T73] ? __timer_delete_sync+0xd3/0x110 [ 144.826519][ T73] inet_twsk_deschedule_put+0xec/0x150 [ 144.826638][ T73] ? inet_twsk_purge+0x412/0x660 [ 144.826761][ T73] inet_twsk_purge+0x4c8/0x660 [ 144.826881][ T73] ? inet_twsk_purge+0x126/0x660 [ 144.827000][ T73] ? __pfx_inet_twsk_purge+0x10/0x10 [ 144.827119][ T73] ? mark_lock+0x38/0x3e0 [ 144.827213][ T73] tcp_twsk_purge+0x112/0x160 [ 144.827333][ T73] tcp_sk_exit_batch+0x17/0x120 [ 144.827455][ T73] cleanup_net+0x4f3/0xa20 [ 144.827576][ T73] ? __pfx_lock_acquire.part.0+0x10/0x10 [ 144.827696][ T73] ? __pfx_cleanup_net+0x10/0x10 [ 144.827885][ T73] ? trace_lock_acquire+0x135/0x1c0 [ 144.828005][ T73] ? process_one_work+0xde2/0x1730 [ 144.828125][ T73] ? lock_acquire+0x32/0xc0 [ 144.828245][ T73] ? process_one_work+0xde2/0x1730 [ 144.828431][ T73] process_one_work+0xe2c/0x1730 [ 144.828552][ T73] ? __pfx___lock_release+0x10/0x10 [ 144.828672][ T73] ? __pfx_process_one_work+0x10/0x10 [ 144.828796][ T73] ? assign_work+0x16c/0x240 [ 144.828982][ T73] worker_thread+0x587/0xd30 [ 144.829102][ T73] ? lockdep_hardirqs_on_prepare.part.0+0x1af/0x370 [ 144.829251][ T73] ? __pfx_worker_thread+0x10/0x10 [ 144.829370][ T73] ? __pfx_worker_thread+0x10/0x10 [ 144.829554][ T73] kthread+0x28a/0x350 [ 144.829644][ T73] ? __pfx_kthread+0x10/0x10 [ 144.829763][ T73] ret_from_fork+0x31/0x70 [ 144.829886][ T73] ? __pfx_kthread+0x10/0x10 [ 144.830005][ T73] ret_from_fork_asm+0x1a/0x30 [ 144.830194][ T73]