Panic in 7.1-PRERELEASE (was: Re: kgdb on sparc64)

Ruben de Groot mail25 at bzerk.org
Wed Nov 19 21:47:23 PST 2008


On Wed, Nov 19, 2008 at 11:03:17PM +0100, Marius Strobl typed:
> On Wed, Nov 19, 2008 at 09:03:44AM +0100, Ruben de Groot wrote:
> > 
> > FreeBSD nostalgia4infinity.bzerk.org 7.1-PRERELEASE FreeBSD 7.1-PRERELEASE #5: Mon Nov 10 21:25:55 CET 2008     root at nostalgia4infinity.bzerk.org:/usr/obj/usr/src/sys/N4I  sparc64
> > 
> > panic: trap: data access error
> > cpuid = 0
> > KDB: stack backtrace:
> > panic() at panic+0x1c8
> > trap() at trap+0x4d0
> > -- data access error %o7=0xc00bac60 --
> > dc_mii_writebit() at dc_mii_writebit+0xd8
> > dc_miibus_writereg() at dc_miibus_writereg+0x2a0
> > miibus_writereg() at miibus_writereg+0x64
> > mii_phy_reset() at mii_phy_reset+0x7c
> > mii_phy_tick() at mii_phy_tick+0x154
> > amphy_service() at amphy_service+0x164
> > mii_tick() at mii_tick+0x1c
> > dc_tick() at dc_tick+0x1ec
> > softclock() at softclock+0x3c4
> > ithread_loop() at ithread_loop+0x21c
> > fork_exit() at fork_exit+0x88
> > fork_trampoline() at fork_trampoline+0x8
> > Uptime: 4d22h16m5s
> > Dumping 1024 MB (4 chunks)
> >   chunk at 0: 268435456 bytes ... ok
> >   chunk at 0x20000000: 268435456 bytes ... ok
> >   chunk at 0x40000000: 268435456 bytes ... ok
> >   chunk at 0x60000000: 268435456 bytes ... ok
> > 
> 
> Could you please run gdb on the corresponding kernel.debug
> and report the output of the following commands?
> l*(0xc00bac60)
> l*(dc_mii_writebit+0xd8)

(gdb) l*(0xc00bac60)
0xc00bac60 is in dc_mii_send (/usr/src/sys/dev/dc/if_dc.c:661).
656     dc_mii_send(struct dc_softc *sc, u_int32_t bits, int cnt)
657     {
658             int i;
659
660             for (i = (0x1 << (cnt - 1)); i; i >>= 1)
661                     dc_mii_writebit(sc, bits & i);
662     }
663
664     /*
665      * Read an PHY register through the MII.
(gdb) l*(dc_mii_writebit+0xd8)
0xc00baaf8 is in dc_mii_writebit (cpufunc.h:129).
124                         : : "r" (val), "r" (va), "r" (asi));                \
125             }
126
127     STNC_GEN(u_char, stba);
128     STNC_GEN(u_short, stha);
129     STNC_GEN(u_int, stwa);
130     STNC_GEN(u_long, stxa);
131
132     #define ST_GENERIC(va, asi, val, op)                                    \
133             __asm __volatile(#op " %0, [%1] %2"                             \

> If you need a quick workaround I think that locally reverting
> src/sys/dev/dc/if_dc.c r182461/1.192.2.5 will get you rid of
> this problem, this will also make dc(4) again no longer check
> the link state of this interface once it's up though, so this
> is no real solution.

Thanks. I've moved all websites away from this machine, so it's available for any
further tests to help find a solution. 

Ruben



More information about the freebsd-sparc64 mailing list