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