Re: xfs Oops 2.6.12-rc4 Badness in xfs_page_state_convert

From: Darren Williams <dsw_at_gelato.unsw.edu.au>
Date: 2005-05-14 20:10:28
On Sat, 14 May 2005, Darren Williams wrote:

> Hi Greg
> 
> On Fri, 13 May 2005, Greg Edwards wrote:
> 
> > On Sat, May 14, 2005 at 01:57:29AM +1000, Darren Williams wrote:
> > | Hi all
> > |  I have been benchmarking on an Altix 350 4way and upon
> > | upgrading from 2.6.12-rc3 -> rc4 Git tree-id 
> > | eed337ef5e9ae7d62caa84b7974a11fddc7f06e0 using the sn2_defconfig
> > | with # CONFIG_MODULES is not set, I am seeing a constant stream of
> > | the following Oops:
> > | 
> > | Badness in xfs_page_state_convert at 
> > | /usr/src/dsw/SanJose/git-linux/fs/xfs/linux-2.6/xfs_aops.c:889
> > | 
> > | Call Trace:
> > |  [<a000000100010280>] show_stack+0x80/0xa0
> > |                                 sp=e00000b0f608f8f0 bsp=e00000b0f6089380
> > |  [<a0000001000102d0>] dump_stack+0x30/0x60
> > |                                 sp=e00000b0f608fac0 bsp=e00000b0f6089368
> > |  [<a0000001003a0cf0>] xfs_page_state_convert+0x530/0xac0
> > |                                 sp=e00000b0f608fac0 bsp=e00000b0f6089290
> > |  [<a0000001003a1fa0>] linvfs_writepage+0x120/0x240
> > |                                 sp=e00000b0f608fc00 bsp=e00000b0f6089258
> > |  [<a00000010018c5d0>] mpage_writepages+0x530/0x7e0
> > |                                 sp=e00000b0f608fc10 bsp=e00000b0f6089178
> > |  [<a0000001000fa760>] do_writepages+0xe0/0x100
> > |                                 sp=e00000b0f608fcb0 bsp=e00000b0f6089150
> > |  [<a0000001001888d0>] __sync_single_inode+0xb0/0x500
> > |                                 sp=e00000b0f608fcb0 bsp=e00000b0f60890e8
> > |  [<a000000100188e40>] __writeback_single_inode+0x120/0x320
> > |                                 sp=e00000b0f608fcb0 bsp=e00000b0f60890a0
> > |  [<a0000001001894e0>] sync_sb_inodes+0x4a0/0x6e0
> > |                                 sp=e00000b0f608fd30 bsp=e00000b0f6088fd8
> > |  [<a0000001001899f0>] writeback_inodes+0x2d0/0x300
> > |                                 sp=e00000b0f608fd30 bsp=e00000b0f6088f80
> > |  [<a0000001000fa140>] wb_kupdate+0x220/0x320
> > |                                 sp=e00000b0f608fd30 bsp=e00000b0f6088f28
> > |  [<a0000001000fb8a0>] __pdflush+0x240/0x420
> > |                                 sp=e00000b0f608fda0 bsp=e00000b0f6088e90
> > |  [<a0000001000fbac0>] pdflush+0x40/0x60
> > |                                 sp=e00000b0f608fda0 bsp=e00000b0f6088e78
> > |  [<a0000001000d5d70>] kthread+0x1f0/0x200
> > |                                 sp=e00000b0f608fdd0 bsp=e00000b0f6088e38
> > |  [<a0000001000125d0>] kernel_thread_helper+0xd0/0x100
> > |                                 sp=e00000b0f608fe30 bsp=e00000b0f6088e10
> > |  [<a000000100009120>] start_kernel_thread+0x20/0x40
> > |                                 sp=e00000b0f608fe30 bsp=e00000b0f6088e10
> > |   
> > | This patch introduces the WARN_ON
> > | http://www.kernel.org/git/gitweb.cgi?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=24e17b5fb99d4d1b47fe0847a3a801e36d431ff6
> > 
> > We hit this internally as well with our tests.  Christoph suggested the
> > following:
> > 
> > We're trylocking now if wbc->sync_mode is WB_SYNC_NONE, so having
> > page_dirty set on startio isn't fatal.  It should go away with the patch
> > below:
> > 
> > Index: linux-2.6/fs/xfs/linux-2.6/xfs_aops.c
> > ===================================================================
> > --- linux-2.6.orig/fs/xfs/linux-2.6/xfs_aops.c	2005-05-06
> > 13:36:10.000000000 +0200
> > +++ linux-2.6/fs/xfs/linux-2.6/xfs_aops.c	2005-05-10
> > 10:33:37.000000000 +0200
> > @@ -886,7 +886,7 @@
> >  		SetPageUptodate(page);
> >  
> >  	if (startio) {
> > -		WARN_ON(page_dirty);
> > +		WARN_ON(page_dirty && wbc->sync_mode != WB_SYNC_NONE);
> >  		xfs_submit_page(page, wbc, bh_arr, cnt, 0, !page_dirty);
> >  	}
> 
> Thanks Greg, that fixes it.

It just showed up again coping data from xfs -> fat

I also removed 'hch' from CC since I'm getting bounces for that
name.

 - dsw
 
> 
>  - dsw
> 
> --------------------------------------------------
> Darren Williams <dsw AT gelato.unsw.edu.au>
> Gelato@UNSW <www.gelato.unsw.edu.au>
> --------------------------------------------------
> -
> To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--------------------------------------------------
Darren Williams <dsw AT gelato.unsw.edu.au>
Gelato@UNSW <www.gelato.unsw.edu.au>
--------------------------------------------------
-
To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Received on Sat May 14 06:12:39 2005

This archive was generated by hypermail 2.1.8 : 2005-08-02 09:20:38 EST