xfs
[Top] [All Lists]

Re: panic occurs on IA64

To: Hiroshi Aono <h-aono@xxxxxxxxxxxxx>
Subject: Re: panic occurs on IA64
From: Russell Cattelan <cattelan@xxxxxxxxxxx>
Date: Tue, 05 Dec 2000 11:04:15 -0600
Cc: linux-xfs@xxxxxxxxxxx
References: <geelzn47ys.wl@xxxxxxxxxxxxxxxxxxxx>
Sender: owner-linux-xfs@xxxxxxxxxxx
Hiroshi Aono wrote:

> Hi,
>
> I tried to run XFS on IA64, but kernel panic occurs.
> I got 11202000XFSdevel.patch.gz and compiled.
> Then I run the kernel on IA64 machine which is provided by Intel. (2cpu, 
> 1Gmem, xfs on SCSI disk)
>
> Mkfs works fine.
>
> [root@luna aono]# mkfs -t xfs -b size=16384 -f /dev/sdc1
> meta-data=/dev/sdc1              isize=256    agcount=8, agsize=8033 blks
> data     =                       bsize=16384  blocks=64258, imaxpct=25
>          =                       sunit=0      swidth=0 blks, unwritten=0
> naming   =version 2              bsize=16384
> log      =internal log           bsize=16384  blocks=1000
> realtime =none                   extsz=65536  blocks=0, rtextents=0
>
> However the kernel crashed at xlog_bread when I mounted the filesystem.
> First, I trapped at xlog_bread and xfsbdstrat.
>
> [root@luna aono]# mount -t xfs /dev/sdc1 /mnt/xfs
>
> Instruction breakpoint #1 at 0xe0000000007db470
> e0000000007db470 <xfsbdstrat>: [MII]       alloc r37=ar.pfs,9,6,0
> e0000000007db471 <xfsbdstrat+0x1>:             addl r14=1055048,r1
> e0000000007db472 <xfsbdstrat+0x2>:             mov r36=b0
> Entering kdb (0x31e88000) on processor 0 [0]kdb> go
>
> Start mounting filesystem: sd(8,33)
> Instruction breakpoint #0 at 0xe0000000007804a0
> e0000000007804a0 <xlog_bread>: [MII]       alloc r43=ar.pfs,16,12,0
> e0000000007804a1 <xlog_bread+0x1>:             addl r14=1055048,r1
> e0000000007804a2 <xlog_bread+0x2>:             mov r42=b0
> Entering kdb (0x31e88000) on processor 0 [0]kdb> go
>
> Instruction breakpoint #1 at 0xe0000000007db470
> e0000000007db470 <xfsbdstrat>: [MII]       alloc r37=ar.pfs,9,6,0
> e0000000007db471 <xfsbdstrat+0x1>:             addl r14=1055048,r1
> e0000000007db472 <xfsbdstrat+0x2>:             mov r36=b0
> Entering kdb (0x31e88000) on processor 0 [0]kdb> go
>
> Instruction breakpoint #0 at 0xe0000000007804a0
> e0000000007804a0 <xlog_bread>: [MII]       alloc r43=ar.pfs,16,12,0
> e0000000007804a1 <xlog_bread+0x1>:             addl r14=1055048,r1
> e0000000007804a2 <xlog_bread+0x2>:             mov r42=b0
> Entering kdb (0x31e88000) on processor 0 [0]kdb> go
>
> Unable to handle kernel paging request at virtual address 00000000000001d0
> mount[300]: Oops 8813272891392
> Entering kdb (0x31e88000) on processor 0 Panic: <NULL>
> due to panic @ 0x7806d0
>  psr: 0x0000101008026030   ifs: 0x8000000000000610    ip: 0xe0000000007806d0
> unat: 0x0000000000000000   pfs: 0x0000000000000590   rsc: 0x0000000000000003
> rnat: 0x0000000000000590  bsps: 0x0000000000000003    pr: 0x000000000002e553
> ldrs: 0x0000000000000000   ccv: 0x0000000000000000  fpsr: 0x0009804c8a70033f
>   b0: 0xe000000000782c30    b6: 0xe000000000502f70    b7: 0xe000000000521270
>   r1: 0xe000000000ce1e40    r2: 0xe000000031e8f970    r3: 0x000000000002e513
>   r8: 0x0000000000000000    r9: 0x0000000000000000   r10: 0x0000000000000000
>  r11: 0x600000000000c140   r12: 0xe000000031e8f9b0   r13: 0xe000000031e88000
>  r14: 0x00000000000001d0   r15: 0xe000000031d13840   r16: 0xe000000031d13810
>  r17: 0x0000000008000001   r18: 0xe000000031d13818   r19: 0x0000000000000200
>  r20: 0xe000000031e897b8   r21: 0x000000000002e593   r22: 0x000000003fe36dc0
>  r23: 0x80000000ffdf5f30   r24: 0x80000000ffdf5ee0   r25: 0x80000000ffdf5f40
>  r26: 0x000000003ff48010   r27: 0xe000000000de22d8   r28: 0xe000000000521270
>  r29: 0x0000000000000001   r30: 0xe000000000c94080   r31: 0x600000000000c110
> &regs = 0xe000000031e8f820
> [0]kdb> bt
> Ret Address (ip)    Mem Stack (sp) Reg Stack (bsp) Name
>
> 0xe0000000007806d0:  v+0x2000000000000000   v+0x3be60eb0   xlog_bread
>
> bt command on IA64 seems not to work.
> I disassembled the crashed point.
> It seems the kernel crashed at before calling xfsbdstrat.
>
>                         292: PCREL21B   assfail
>      296:       d0 02 3c 30 20 00                   ld8 r45=[r15]
>      29c:       08 00 00 50                         br.call.sptk.many b0=290 
> <xlog_bread+0x180>;;
>      2a0:       10 00 00 00 01 00       [MIB]       nop.m 0x0
>      2a6:       00 00 00 02 00 00                   nop.i 0x0
>      2ac:       20 00 00 40                         br 2c0 <xlog_bread+0x1b0>
>      2b0:       00 00 00 00 01 00       [MII]       nop.m 0x0
>      2b6:       40 22 d9 ac 29 00                   dep.z r36=r36,9,23
>      2bc:       00 00 04 00                         nop.i 0x0
>      2c0:       01 78 00 50 01 21       [MII]       adds r15=128,r40
>      2c6:       70 42 95 00 42 00                   adds r39=40,r37
>      2cc:       02 29 01 84                         adds r16=16,r37;;
>      2d0:       04 70 00 1e 18 10       [MLX]       ld8 r14=[r15]
>      2d6:       08 00 00 00 00 20                   movl r17=0x8000001
>      2dc:       12 00 00 60
>      2e0:       02 00 00 00 01 00       [MII]       nop.m 0x0
>      2e6:       30 01 90 2c 00 c0                   sxt4 r19=r36;;
>      2ec:       e1 48 01 80                         add r14=r14,r41
>      2f0:       02 78 00 4b 00 21       [MII]       adds r15=64,r37
>      2f6:       40 42 a3 00 42 00                   adds r36=104,r40;;
>      2fc:       00 00 04 00                         nop.i 0x0
>      300:       00 00 38 4e 98 11       [MII]       st8 [r39]=r14
>      306:       20 c1 94 00 42 a0                   adds r18=24,r37
>      30c:       05 28 01 84                         mov r45=r37
>      310:       0b 70 00 20 10 10       [MMI]       ld4 r14=[r16];;
>      316:       e0 88 38 1c 40 00                   or r14=r17,r14
>      31c:       00 00 04 00                         nop.i 0x0;;
>      320:       08 00 38 20 90 11       [MMI]       st4 [r16]=r14
>      326:       00 98 3c 30 23 00                   st8 [r15]=r19
>      32c:       00 00 04 00                         nop.i 0x0
>      330:       0b 70 00 48 18 10       [MMI]       ld8 r14=[r36];;
>      336:       e0 80 3a 06 42 00                   adds r14=464,r14
>      33c:       00 00 04 00                         nop.i 0x0;;
>      340:       0a 78 00 1c 18 10       [MMI]       ld8 r15=[r14];; <- crashed
>      346:       00 78 48 30 23 00                   st8 [r18]=r15
>      34c:       00 00 04 00                         nop.i 0x0
>      350:       11 60 01 48 18 10       [MIB]       ld8 r44=[r36]
>                         352: PCREL21B   xfsbdstrat
>      356:       00 00 00 02 00 00                   nop.i 0x0
>      35c:       08 00 00 50                         br.call.sptk.many b0=350 
> <xlog_bread+0x240>;;
>      360:       11 60 01 4a 00 21       [MIB]       mov r44=r37
>
> /*
>  * nbblks should be uint, but oh well.  Just want to catch that 32-bit length.
>  */
> int
> xlog_bread(xlog_t       *log,
>            xfs_daddr_t  blk_no,
>            int          nbblks,
>            xfs_buf_t    *bp)
> {
>         int error;
>
>         ASSERT(log);
>         ASSERT(nbblks > 0);
>         ASSERT(BBTOB(nbblks) <= XFS_BUF_SIZE(bp));
>         ASSERT(bp);
>
>         XFS_BUF_SET_ADDR(bp, log->l_logBBstart + blk_no);
>         XFS_BUF_READ(bp);
>         XFS_BUF_BUSY(bp);
>         XFS_BUF_SET_COUNT(bp, BBTOB(nbblks));
>         XFS_BUF_SET_TARGET(bp, &log->l_mp->m_logdev_targ);
>
>         xfsbdstrat(log->l_mp, bp);
>         if (error = xfs_iowait(bp)) {
>                 xfs_ioerror_alert("xlog_bread", log->l_mp,
>                                   XFS_BUF_TARGET(bp), XFS_BUF_ADDR(bp));
>                 return (error);
>         }
>         return error;
> }       /* xlog_bread */
>
> What is wrong? can you help me?

Well these things are always difficult to just "look at" and figure out what is 
wrong.

But it looks like a bad pointer someplace.

Do you have XFS compiled with DEBUG turned on?
If not recompile the xfs module and try running again.
If the log structure or xfs_buf_t is NULL the ASSERTs at the
begging of the function should catch the fact.

If that doesn't work start printing out all the fields of the log structure 
that are
referenced.
log->l_mp->m_logdev_targ
and
log->l_mp


>
>
> Hiroshi Aono, NEC Solutions
> (h-aono@xxxxxxxxxxxxx)


<Prev in Thread] Current Thread [Next in Thread>