NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: kern/58531: NetBSD 10.0 deadlock in nd_timer



The following reply was made to PR kern/58531; it has been noted by GNATS.

From: Emmanuel Dreyfus <manu%netbsd.org@localhost>
To: gnats-bugs%netbsd.org@localhost
Cc: 
Subject: Re: kern/58531: NetBSD 10.0 deadlock in nd_timer
Date: Sun, 11 Aug 2024 16:23:16 +0000

 On Sun, Aug 11, 2024 at 01:05:09PM +0000, Emmanuel Dreyfus wrote:
 > wm_start() is short. We wait for txq->txq_lock
 >         mutex_enter(txq->txq_lock);
 >         if (!txq->txq_stopping)
 >                 wm_start_locked(ifp);
 >         mutex_exit(txq->txq_lock);
 > 
 > I already rebooted hence I cannot tell what thread hold it. Let us wait the
 > next crash.
 
 New crash, backtrace starts by:
 mutex_enter(c84519c0,2da,c8451ac0,c0ab8e91,0,c894a834,2,dfe47c70,c0ab8f16,c894a8
 34) at netbsd:mutex_enter+0x555
 wm_start(c894a834,dfe47c70,102,2a,c894a834,3cf31000,0,dfe47cc0,c0ac776c,c894a834
 ) at netbsd:wm_start+0x24
 
 show lock c84519c0 says:
 lock address : c84519c0
 type         : spin
 initialized  : netbsd:wm_alloc_txrx_queues.part.0+0x4d
 shared holds :                  0 exclusive:                  1
 shares wanted:                  0 exclusive:                  1
 relevant cpu :                  0 last held:                  0
 relevant lwp : 0x00000000c856f300 last held: 0x00000000c856f300
 last locked* : netbsd:wm_handle_queue+0x29
 unlocked     : netbsd:wm_intr_legacy+0x80
 owner field  : 0x0000000000010600 wait/spin:                0/1
 
 Here is last held:
 PID    LID S CPU     FLAGS       STRUCT LWP *               NAME WAIT
 0    >   3 7   0       200           c856f300          softnet/0
 
 Backtrace:
 breakpoint(c0f3676c,5,0,0,c43cfc80,c43c7220,c0e4fe00,dfd7fc84,c0a027c7,c0f368cc) at netbsd:breakpoint+0x4
 vpanic(c0f368cc,dfd7fc90,dfd7fcbc,c09f6e4d,c0f368cc,c0f2d347,c0e4fe00,10a,c0f308d6,1) at netbsd:vpanic+0x196
 panic(c0f368cc,c0f2d347,c0e4fe00,10a,c0f308d6,1,c0f308d6,10a,c0e4fe00,10e916) at netbsd:panic+0x18
 lockdebug_abort1(6,c0f308d6,1,c42f513c,c0f308d6,c8451380,0,0,c42e10c0,1) at netbsd:lockdebug_abort1+0xdb
 _kernel_lock(1,c85b1d0c,c8451400,dfd7fd54,c0ba15ca,0,0,c8bd6f40,dfd7fd60,c0993ff7) at netbsd:_kernel_lock+0x2e3
 filter_event(c9465c80,c9474400,c9474450,3c,c9474400,dfd7fdb8,c0a1f69d,c9474458,0,2da) at netbsd:filter_event+0x101
 knote(c9474458,0,2da,c0e4ff08,c0ab3cf4,6,0,c42e1210,c9465c80,c9474400) at netbsd:knote+0x2e
 selnotify(c9474450,0,0,c8451ac0,c940888c,6,c0b94a90,1,2a,c8e7da82) at netbsd:selnotify+0x2b
 bpf_deliver(2a,2a,2,90c,5,c0a0019b,1000,c8e74188,1feb0,c894a834) at netbsd:bpf_deliver+0x30c
 wm_send_common_locked(c84519c0,c89ad034,c89ad034,c89ad034,dfd7ff5c,ab9015,0,c8849010,64,c894a834) at netbsd:wm_send_common_locked+0x41e
 wm_handle_queue(c8849000,61766e49,2064696c,61726150,6574656d,72,0,64616f4c,72724520,726f) at netbsd:wm_handle_queue+0x260
 softint_dispatch(c856f040,4,70796c47,68,63637553,737365,0,0,0,0) at netbsd:softint_dispatch+0xe6
 
 We have a deadlock here:
 
 wm_handle_queue/wm_send_common_locked/bpf_deliver/selnotify/knote/filter_event waits for kernel_lock with txq->txq_lock held
 
 softint_dispatch/callout_softclock/nd_timer/arp_llinfo_output/arprequest/ether_output/if_transmit/wm_start waits for txq->txq_lock  with kernel_lock held.
 
 -- 
 Emmanuel Dreyfus
 manu%netbsd.org@localhost
 



Home | Main Index | Thread Index | Old Index