tech-net archive

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

Re: struct ifnet locking [was Re: IFEF_MPSAFE]



Hi,

does this panic (with -current/amd64 as of 20171221) ring a bell with anyone?

shortly after starting mrouted and ntpd:

panic: kernel diagnostic assertion "IFNET_LOCKED(ifp)" failed: file "/src/NetBSD/cur/src/sys/net/if.c", line 3602
fatal breakpoint trap in supervisor mode
trap type 1 code 0 rip 0xffffffff8021d2d5 cs 0x8 rflags 0x246 cr2 0xffff80013dd84000 ilevel 0 rsp 0xffffe4013bb5aae0
curlwp 0xffffe404743f15c0 pid 916.1 lowest kstack 0xffffe4013bb572c0
Stopped in pid 916.1 (mrouted) at       netbsd:breakpoint+0x5: leave
db{3}> bt
breakpoint() at netbsd:breakpoint+0x5
vpanic() at netbsd:vpanic+0x140
ch_voltag_convert_in() at netbsd:ch_voltag_convert_in
if_mcast_op() at netbsd:if_mcast_op+0xb3
ip_mrouter_set() at netbsd:ip_mrouter_set+0xdef
rip_ctloutput() at netbsd:rip_ctloutput+0x11f
rip_ctloutput_wrapper() at netbsd:rip_ctloutput_wrapper+0x2c
sosetopt() at netbsd:sosetopt+0x67
sys_setsockopt() at netbsd:sys_setsockopt+0x91
syscall() at netbsd:syscall+0x235

Best regards,

  Frank


On 12/19/17 09:21, Ryota Ozaki wrote:
On Tue, Dec 19, 2017 at 4:52 PM, Nick Hudson <nick.hudson%gmx.co.uk@localhost> wrote:
On 19/12/2017 03:43, Ryota Ozaki wrote:


BTW I committed a change that disables IFEF_MPSAFE by default on
all interfaces because it seems that IFEF_MPSAFE requires additional
changes to work safely with it. We should enable it by default if an
interface is guaranteed to be safe.
What additional changes?
For example, avoid updating if_flags (and reading it and depending on
the result) in Tx/Rx paths and using if_watchdog.

   ozaki-r



Home | Main Index | Thread Index | Old Index