Date: Thu, 16 May 2002 00:04:45 -0400 (EDT) From: John Baldwin <jhb@FreeBSD.org> To: Kris Kennaway <kris@obsecurity.org> Cc: alpha@FreeBSD.org, Andrew Gallatin <gallatin@cs.duke.edu> Subject: Re: memory management fault during netbooting on 4.6-PRERELEASE Message-ID: <XFMail.20020516000445.jhb@FreeBSD.org> In-Reply-To: <20020515210001.A742@xor.obsecurity.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On 16-May-2002 Kris Kennaway wrote: > On Wed, May 15, 2002 at 11:55:35PM -0400, John Baldwin wrote: >> >> On 16-May-2002 Kris Kennaway wrote: >> > On Wed, May 15, 2002 at 11:40:48PM -0400, John Baldwin wrote: >> > >> >> > (gdb) l *0xfffffc000056bcc0 >> >> > No source file for address 0xfffffc000056bcc0. >> >> >> >> Ok, can you do a nm kernel.debug | sort | less and find the two >> >> symbols that that address falls between? >> > >> > fffffc000056bca0 t swi_net >> > fffffc000056bd20 T do_sir >> >> Ok, swi_net() looks like so (alpha/alpha/iplfuncs.c) >> >> static void >> swi_net() >> { >> u_int32_t bits = atomic_readandclear(&netisr); >> int i; >> >> for (i = 0; i < 32; i++) { >> if (bits & 1) >> netisrs[i](); >> bits >>= 1; >> } >> } >> >> My guess then is that we tried to execute a netisr() that was >> NULL. Is this reproducible? > > Yes, it seems to be. > >> If so, you could try adding a >> a hack to not execute the isr if it's null, i.e.: >> >> if ((bits & 1) != 0 && netisrs[i] != NULL) >> netisrs[i](); > > Will try once the current alpha package build is finished. Are there > any other diagnostics I can add while I'm in there? Well, ideally we would like to know which ISR is (mis)firing. Maybe a printf that squawks when this happens. I think we already do this for current and get the swi_net: 18 unregistered isr stuff as a result (relating to ARP requests when you dhcp). Also, it might be nice to somehow track when ISR handlers are registered and deregistered using a backport of KTR or something similar so you can try to figure out what that ISR is supposed to be and see if that helps figure out the bug. However, that is a pretty good chunk of work, and just printing out the ISR if it's NULL might be a simpler first step. > Kris -- John Baldwin <jhb@FreeBSD.org> <>< http://www.FreeBSD.org/~jhb/ "Power Users Use the Power to Serve!" - http://www.FreeBSD.org/ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-alpha" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?XFMail.20020516000445.jhb>