Date: Fri, 1 Nov 2013 13:22:35 -0400 From: John Baldwin <jhb@freebsd.org> To: Torbjorn Granlund <tg@gmplib.org> Cc: freebsd-amd64@freebsd.org Subject: Re: amd64/183397: Kernel panic at first incoming ssh Message-ID: <201311011322.35869.jhb@freebsd.org> In-Reply-To: <86y558ysnd.fsf@shell.gmplib.org> References: <201310312350.r9VNo1gE056086@freefall.freebsd.org> <201311010921.57769.jhb@freebsd.org> <86y558ysnd.fsf@shell.gmplib.org>
index | next in thread | previous in thread | raw e-mail
On Friday, November 01, 2013 12:48:54 pm Torbjorn Granlund wrote:
> John Baldwin <jhb@freebsd.org> writes:
>
> Can you fire up gdb against your 64-bit kernel file (e.g. gdb
> /boot/kernel/kernel) and do 'l *xn_intr+0x7d'?
>
> I'm afraid my ignorance of how to debug the kernel will show itself
> here.
>
> I did this:
>
> 1. booted the system.
> 2. logged in as root on the (vnc) console.
> 3. issued the command "gdb /boot/kernel/kernel"
> 4. Issued the above command and got this printout:
>
> (gdb) l *xn_intr+0x7d
> 0xffffffff8079fb7d is in xn_intr (atomic.h:161).
> 156 atomic.h: No such file ot directory.
> in atomic.h
> (gdb)
Hummm, I assume you can't get a crashdump when this happens? atomic.h means
it is likely acquiring a lock:
static void
xn_intr(void *xsc)
{
struct netfront_info *np = xsc;
struct ifnet *ifp = np->xn_ifp;
#if 0
if (!(np->rx.rsp_cons != np->rx.sring->rsp_prod &&
likely(netfront_carrier_ok(np)) &&
ifp->if_drv_flags & IFF_DRV_RUNNING))
return;
#endif
if (RING_HAS_UNCONSUMED_RESPONSES(&np->tx)) {
XN_TX_LOCK(np);
xn_txeof(np);
XN_TX_UNLOCK(np);
}
XN_RX_LOCK(np);
xn_rxeof(np);
XN_RX_UNLOCK(np);
Either the XN_TX_LOCK() or XN_RX_LOCK(). It's hard to narrow down where the
corruption lies without a dump.
--
John Baldwin
home |
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201311011322.35869.jhb>
