Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 29 Mar 2001 23:00:23 +0200
From:      Bernd Walter <ticso@mail.cicely.de>
To:        Andrew Gallatin <gallatin@cs.duke.edu>
Cc:        Bernd Walter <ticso@mail.cicely.de>, freebsd-alpha@FreeBSD.ORG
Subject:   Re: -current boot panic
Message-ID:  <20010329230022.B29139@cicely20.cicely.de>
In-Reply-To: <15043.39496.927622.874793@grasshopper.cs.duke.edu>; from gallatin@cs.duke.edu on Thu, Mar 29, 2001 at 03:25:44PM -0500
References:  <20010329221942.A29139@cicely20.cicely.de> <15043.39496.927622.874793@grasshopper.cs.duke.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Mar 29, 2001 at 03:25:44PM -0500, Andrew Gallatin wrote:
> 
> Bernd Walter writes:
>  > 
>  >     trap entry = 0x2 (memory management fault)
>  >     a0         = 0x28
>  >     a1         = 0x1
>  >     a2         = 0x1
>  >     pc         = 0xfffffc00003f53d0
>  >     ra         = 0xfffffc00003f53cc
>  >     curproc    = 0xfffffc0000687080
>  >         pid = 0, comm = 
>  > 
>  > Stopped at      0xfffffc00003f53d0:     stq     s4,0x28(s2) <0x28>      <s4=0xfffffc00005d5eeb,s2=0x0>
> 
> How about running gdb on the kernel (with symbols) and mapping
> 0xfffffc00003f53d0 to a function & line number?

Mmm - yes - sounds logical.
I don't know how to do with gdb here is the relevant objdump -S output:

/*
 * The WITNESS-enabled diagnostic code.
 */
static void
witness_initialize(void *dummy __unused)
{
        struct lock_object *lock;
        struct witness_order_list_entry *order;
        struct witness *w, *w1;
        int i;

        /*
         * We have to release Giant before initializing its witness
         * structure so that WITNESS doesn't get confused.
         */
        mtx_unlock(&Giant);
fffffc00003f51e4:       40 00 28 a4     ldq     t0,64(t7)
fffffc00003f51e8:       09 00 20 f4     bne     t0,fffffc00003f5210 <witness_initialize+0x50>
fffffc00003f51ec:       80 15 1d a6     ldq     a0,5504(gp)
fffffc00003f51f0:       78 15 3d a6     ldq     a1,5496(gp)
fffffc00003f51f4:       70 15 5d a6     ldq     a2,5488(gp)
fffffc00003f51f8:       1c 01 7f 22     lda     a3,284(zero)
fffffc00003f51fc:       f0 ac 7d a7     ldq     t12,-21264(gp)
fffffc00003f5200:       c7 4a 5b 6b     jsr     ra,(t12),fffffc00003f7d20 <witness_get+0xe0>
fffffc00003f5204:       23 00 ba 27     ldah    gp,35(ra)
fffffc00003f5208:       c4 e6 bd 23     lda     gp,-6460(gp)
fffffc00003f520c:       00 00 e0 2f     unop    
fffffc00003f5210:       20 c5 3d a5     ldq     s0,-15072(gp)
fffffc00003f5214:       70 15 5d a5     ldq     s1,5488(gp)
fffffc00003f5218:       10 04 e9 47     mov     s0,a0
fffffc00003f521c:       01 00 3f 22     lda     a1,1(zero)
fffffc00003f5220:       12 04 ea 47     mov     s1,a2
fffffc00003f5224:       1c 01 7f 22     lda     a3,284(zero)
fffffc00003f5228:       b0 a9 7d a7     ldq     t12,-22096(gp)
fffffc00003f522c:       74 60 5b 6b     jsr     ra,(t12),fffffc00003ed400 <eventhandler_register+0x2e0>
fffffc00003f5230:       23 00 ba 27     ldah    gp,35(ra)
fffffc00003f5234:       98 e6 bd 23     lda     gp,-6504(gp)
fffffc00003f5238:       10 04 e9 47     mov     s0,a0
fffffc00003f523c:       11 04 ff 47     clr     a1
fffffc00003f5240:       50 c0 7d a7     ldq     t12,-16304(gp)
fffffc00003f5244:       36 60 5b 6b     jsr     ra,(t12),fffffc00003ed320 <eventhandler_register+0x200>
fffffc00003f5248:       23 00 ba 27     ldah    gp,35(ra)
fffffc00003f524c:       80 e6 bd 23     lda     gp,-6528(gp)
fffffc00003f5250:       10 04 e9 47     mov     s0,a0
fffffc00003f5254:       11 04 ff 47     clr     a1
fffffc00003f5258:       12 04 ea 47     mov     s1,a2
fffffc00003f525c:       1c 01 7f 22     lda     a3,284(zero)
fffffc00003f5260:       b8 a1 7d a7     ldq     t12,-24136(gp)
fffffc00003f5264:       3e 46 5b 6b     jsr     ra,(t12),fffffc00003f6b60 <witness_unlock>
fffffc00003f5268:       23 00 ba 27     ldah    gp,35(ra)
fffffc00003f526c:       60 e6 bd 23     lda     gp,-6560(gp)
}

static __inline int
atomic_cmpset_rel_ptr(volatile void *dst, void *exp, void *src)
{
fffffc00003f5270:       40 00 28 a4     ldq     t0,64(t7)
fffffc00003f5274:       04 00 5f 20     lda     t1,4(zero)
fffffc00003f5278:       30 00 69 ac     ldq_l   t2,48(s0)
fffffc00003f527c:       a3 05 61 40     cmpeq   t2,t0,t2
fffffc00003f5280:       03 00 60 e4     beq     t2,fffffc00003f5290 <witness_initialize+0xd0>
fffffc00003f5284:       03 04 e2 47     mov     t1,t2
fffffc00003f5288:       30 00 69 bc     stq_c   t2,48(s0)
fffffc00003f528c:       f9 30 67 e4     beq     t2,fffffc00005c1674 <Letext+0x774>
fffffc00003f5290:       01 04 e3 47     mov     t2,t0
         * XXX dfr: NetBSD originally had mb instead of wmb for
         * alpha_wmb(). I'm not sure why so I'm leaving it alone. I
         * think it should be safe to use wmb though.
         */
        __asm__ __volatile__ ("mb");
fffffc00003f5294:       00 40 00 60     mb
atomic_cmpset_rel_ptr(volatile void *dst, void *exp, void *src)
{

        return (atomic_cmpset_rel_long((volatile u_long *)dst, (u_long)exp,
            (u_long)src));
fffffc00003f5298:       01 00 3f 40     addl    t0,zero,t0
fffffc00003f529c:       08 00 20 f4     bne     t0,fffffc00003f52c0 <witness_initialize+0x100>
fffffc00003f52a0:       10 04 e9 47     mov     s0,a0
fffffc00003f52a4:       11 04 ff 47     clr     a1
fffffc00003f52a8:       12 04 ea 47     mov     s1,a2
fffffc00003f52ac:       1c 01 7f 22     lda     a3,284(zero)
fffffc00003f52b0:       80 b6 7d a7     ldq     t12,-18816(gp)
fffffc00003f52b4:       1a 5f 5b 6b     jsr     ra,(t12),fffffc00003fcf20 <pipe_direct_write+0x440>
fffffc00003f52b8:       23 00 ba 27     ldah    gp,35(ra)
fffffc00003f52bc:       10 e6 bd 23     lda     gp,-6640(gp)
        mtx_assert(&Giant, MA_NOTOWNED);
fffffc00003f52c0:       20 c5 1d a6     ldq     a0,-15072(gp)
fffffc00003f52c4:       02 00 3f 22     lda     a1,2(zero)
fffffc00003f52c8:       70 15 5d a6     ldq     a2,5488(gp)
fffffc00003f52cc:       1d 01 7f 22     lda     a3,285(zero)
fffffc00003f52d0:       b0 a9 7d a7     ldq     t12,-22096(gp)
fffffc00003f52d4:       4a 60 5b 6b     jsr     ra,(t12),fffffc00003ed400 <eventhandler_register+0x2e0>
fffffc00003f52d8:       23 00 ba 27     ldah    gp,35(ra)
fffffc00003f52dc:       f0 e5 bd 23     lda     gp,-6672(gp)

        STAILQ_INSERT_HEAD(&all_locks, &all_mtx.mtx_object, lo_list);
fffffc00003f52e0:       48 13 5d a4     ldq     t1,4936(gp)
fffffc00003f52e4:       60 a7 7d a4     ldq     t2,-22688(gp)
fffffc00003f52e8:       00 00 23 a4     ldq     t0,0(t2)
fffffc00003f52ec:       20 00 22 b4     stq     t0,32(t1)
fffffc00003f52f0:       03 00 20 f4     bne     t0,fffffc00003f5300 <witness_initialize+0x140>
fffffc00003f52f4:       01 14 44 40     addq    t1,0x20,t0
fffffc00003f52f8:       08 00 23 b4     stq     t0,8(t2)
fffffc00003f52fc:       00 00 e0 2f     unop    
fffffc00003f5300:       60 a7 5d a4     ldq     t1,-22688(gp)
fffffc00003f5304:       48 13 3d a4     ldq     t0,4936(gp)
fffffc00003f5308:       00 00 22 b4     stq     t0,0(t1)
        mtx_init(&w_mtx, "witness lock", MTX_SPIN | MTX_QUIET | MTX_NOWITNESS);
fffffc00003f530c:       70 13 1d a6     ldq     a0,4976(gp)
fffffc00003f5310:       68 15 3d a6     ldq     a1,5480(gp)
fffffc00003f5314:       0b 00 5f 22     lda     a2,11(zero)
fffffc00003f5318:       10 97 7d a7     ldq     t12,-26864(gp)
fffffc00003f531c:       80 60 5b 6b     jsr     ra,(t12),fffffc00003ed520 <eventhandler_register+0x400>
fffffc00003f5320:       23 00 ba 27     ldah    gp,35(ra)
fffffc00003f5324:       a8 e5 bd 23     lda     gp,-6744(gp)
        for (i = 0; i < WITNESS_COUNT; i++)
fffffc00003f5328:       09 04 ff 47     clr     s0
fffffc00003f532c:       68 13 5d a5     ldq     s1,4968(gp)
                witness_free(&w_data[i]);
fffffc00003f5330:       30 d7 20 49     sll     s0,0x6,a0
fffffc00003f5334:       10 04 0a 42     addq    a0,s1,a0
fffffc00003f5338:       9b 0a 40 d3     bsr     ra,fffffc00003f7da8 <witness_free+0x8>
fffffc00003f533c:       09 30 20 41     addl    s0,0x1,s0
fffffc00003f5340:       a1 fd 38 41     cmple   s0,0xc7,t0
fffffc00003f5344:       fa ff 3f f4     bne     t0,fffffc00003f5330 <witness_initialize+0x170>
        for (i = 0; i < WITNESS_CHILDCOUNT; i++)
fffffc00003f5348:       09 04 ff 47     clr     s0
fffffc00003f534c:       60 13 7d a5     ldq     s2,4960(gp)
fffffc00003f5350:       1f 03 5f 21     lda     s1,799(zero)
fffffc00003f5354:       00 00 e0 2f     unop    
fffffc00003f5358:       1f 04 ff 47     nop     
fffffc00003f535c:       00 00 e0 2f     unop    
                witness_child_free(&w_childdata[i]);
fffffc00003f5360:       30 d7 20 49     sll     s0,0x6,a0
fffffc00003f5364:       10 04 0b 42     addq    a0,s2,a0
fffffc00003f5368:       f7 0a 40 d3     bsr     ra,fffffc00003f7f48 <witness_child_free+0x8>
fffffc00003f536c:       09 30 20 41     addl    s0,0x1,s0
fffffc00003f5370:       a1 0d 2a 41     cmple   s0,s1,t0
fffffc00003f5374:       fa ff 3f f4     bne     t0,fffffc00003f5360 <witness_initialize+0x1a0>
        for (i = 0; i < LOCK_CHILDCOUNT; i++)
fffffc00003f5378:       09 04 ff 47     clr     s0
fffffc00003f537c:       58 13 7d a5     ldq     s2,4952(gp)
fffffc00003f5380:       01 08 5f 21     lda     s1,2049(zero)
fffffc00003f5384:       00 00 e0 2f     unop    
fffffc00003f5388:       1f 04 ff 47     nop     
fffffc00003f538c:       00 00 e0 2f     unop    
                witness_lock_list_free(&w_locklistdata[i]);
fffffc00003f5390:       30 d7 20 49     sll     s0,0x6,a0
fffffc00003f5394:       10 04 0b 42     addq    a0,s2,a0
fffffc00003f5398:       bb 0b 40 d3     bsr     ra,fffffc00003f8288 <witness_lock_list_free+0x8>
fffffc00003f539c:       09 30 20 41     addl    s0,0x1,s0
fffffc00003f53a0:       a1 0d 2a 41     cmple   s0,s1,t0
fffffc00003f53a4:       fa ff 3f f4     bne     t0,fffffc00003f5390 <witness_initialize+0x1d0>

        /* First add in all the specified order lists. */
        for (order = order_lists; order->w_name != NULL; order++) {
fffffc00003f53a8:       40 13 5d a5     ldq     s1,4928(gp)
fffffc00003f53ac:       00 00 2a a4     ldq     t0,0(s1)
fffffc00003f53b0:       1e 00 20 e4     beq     t0,fffffc00003f542c <witness_initialize+0x26c>
fffffc00003f53b4:       60 15 bd a5     ldq     s4,5472(gp)
fffffc00003f53b8:       1f 04 ff 47     nop     
fffffc00003f53bc:       00 00 e0 2f     unop    
                w = enroll(order->w_name, order->w_class);
fffffc00003f53c0:       00 00 0a a6     ldq     a0,0(s1)
fffffc00003f53c4:       08 00 2a a6     ldq     a1,8(s1)
fffffc00003f53c8:       df 06 40 d3     bsr     ra,fffffc00003f6f48 <enroll+0x8>
fffffc00003f53cc:       0b 04 e0 47     mov     v0,s2
                w->w_file = "order list";
fffffc00003f53d0:       28 00 ab b5     stq     s4,40(s2)
                for (order++; order->w_name != NULL; order++) {
fffffc00003f53d4:       0a 14 42 41     addq    s1,0x10,s1
fffffc00003f53d8:       00 00 2a a4     ldq     t0,0(s1)
fffffc00003f53dc:       10 00 20 e4     beq     t0,fffffc00003f5420 <witness_initialize+0x260>
fffffc00003f53e0:       60 15 9d a5     ldq     s3,5472(gp)
fffffc00003f53e4:       00 00 e0 2f     unop    
fffffc00003f53e8:       1f 04 ff 47     nop     
fffffc00003f53ec:       00 00 e0 2f     unop    

-- 
B.Walter              COSMO-Project         http://www.cosmo-project.de
ticso@cicely.de         Usergroup           info@cosmo-project.de


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?20010329230022.B29139>