Re: XFS hung on 2.6.33.3 kernel

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Aug 04, 2010 at 12:39:08AM -0400, Ilia Mirkin wrote:
> On Wed, Aug 4, 2010 at 12:27 AM, Dave Chinner <david@xxxxxxxxxxxxx> wrote:
> > On Tue, Aug 03, 2010 at 09:15:53PM -0400, Ilia Mirkin wrote:
> >> On Tue, Aug 3, 2010 at 8:47 PM, Dave Chinner <david@xxxxxxxxxxxxx> wrote:
> >> > Ilia,
> >> >
> >> > Can you send me the output of this for your kernel that the
> >> > traces came from:
> >> >
> >> > $ gdb <path/to/vmlinux>
> >> > (gdb) l *( xfs_write+0x2cc)
> >> >
> >> > You can run it against the vmlinux file in the kernel build
> >> > directory.  Basically I need to know which xfs_ilock() call in
> >> > xfs_write() one of the mysqld-test processes is stuck on.
> >>
> >> No problem - BTW, I'm running this on a 2.6.33.3 kernel (same as the
> >> one before, although diff hardware). If you want (and are fine with me
> >> "destroying" the current state), I can upgrade it to a kernel of your
> >> choice and repeat the test overnight.
> >>
> >> Naturally I didn't have CONFIG_DEBUG_INFO in there... just changed
> >> that to Y and recompiled. I'm not entirely sure that this preserves
> >> all the offsets, but at least the BUG-HUNTING doc makes allusions that
> >> it would.
> >>
> >> (gdb) l *( xfs_write+0x2cc)
> >> 0xffffffff8124342d is in xfs_write (fs/xfs/linux-2.6/xfs_lrw.c:597).
> >> 592                     if (!need_i_mutex && (mapping->nrpages || pos
> >> > xip->i_size)) {
> >> 593                             xfs_iunlock(xip, XFS_ILOCK_EXCL|iolock);
> >> 594                             iolock = XFS_IOLOCK_EXCL;
> >> 595                             need_i_mutex = 1;
> >> 596                             mutex_lock(&inode->i_mutex);
> >> 597                             xfs_ilock(xip, XFS_ILOCK_EXCL|iolock);
> >
> > Make sense. Can you run 'l *(xfs_ilock+0x2c)' as well? I just need to
> > confirm which lock it has blocked on.
> 
> (gdb) l *(xfs_ilock+0x2c)
> 0xffffffff81221001 is in xfs_ilock (fs/xfs/linux-2.6/mrlock.h:48).
> 43              down_read_nested(&mrp->mr_lock, subclass);
> 44      }
> 45
> 46      static inline void mrupdate_nested(mrlock_t *mrp, int subclass)
> 47      {
> 48              down_write_nested(&mrp->mr_lock, subclass);
> 49      #ifdef DEBUG
> 50              mrp->mr_writer = 1;
> 51      #endif
> 52      }

OK, that doesn't help - it followed into the inline function
rather than telling me which of the two calls in the function it
was. I guess I'll need the disassembly output to work it out.
Can you send the output of "disass xfs_ilock" instead? Thanks.

Cheers,

Dave.
-- 
Dave Chinner
david@xxxxxxxxxxxxx

_______________________________________________
xfs mailing list
xfs@xxxxxxxxxxx
http://oss.sgi.com/mailman/listinfo/xfs



[Index of Archives]     [Linux XFS Devel]     [Linux Filesystem Development]     [Filesystem Testing]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux