All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrea Arcangeli <andrea@suse.de>
To: Samuel Flory <sflory@rackable.com>
Cc: Austin Gonyou <austin@coremetrics.com>,
	Christian Guggenberger 
	<christian.guggenberger@physik.uni-regensburg.de>,
	linux-kernel@vger.kernel.org, linux-xfs@oss.sgi.com
Subject: Re: 2.4.20pre5aa2
Date: Fri, 13 Sep 2002 02:23:16 +0200	[thread overview]
Message-ID: <20020913002316.GG11605@dualathlon.random> (raw)
In-Reply-To: <3D81235B.6080809@rackable.com>

On Thu, Sep 12, 2002 at 04:29:31PM -0700, Samuel Flory wrote:
>  Your patch seem to solve only some  of the xfs issues for me.  Before 
> the patch my system hung when booting.  This only occured I  had xfs 
> compiled into the kernel.   After patching  things seemed fine, but 
> durning "dbench 32" the system locked.  Upon rebooting and attempting to 
> mount the filesystem I got this:
> XFS mounting filesystem md(9,2)
> Starting XFS recovery on filesystem: md(9,2) (dev: 9/2)
> kernel BUG at page_buf.c:578!
> <and so on>
> 
> PS- The results of ksymoops are attached.

that seems a bug in xfs, it BUG() if vmap fails, it must not BUG(), it
must return -ENOMEM to userspace instead, or it can try to recollect and
release some of the other vmalloced entries. Most probably you run into
an address space shortage, not a real ram shortage, so to workaround it
you can recompile with CONFIG_2G and it'll probably work, also dropping
the gap page in vmalloc may help workaround it (there's no config option
for it though). It could be also a vmap leak, maybe a missing vfree,
just some idea.


> 
> Andrea Arcangeli wrote:
> 
> >was a collision between new xfs and new scheduler, you can use this fix
> >in the meantime:
> >
> >--- 2.4.20pre5aa3/fs/xfs/pagebuf/page_buf.c.~1~	Wed Sep 11 05:17:46 
> >2002
> >+++ 2.4.20pre5aa3/fs/xfs/pagebuf/page_buf.c	Wed Sep 11 06:00:35 2002
> >@@ -2055,9 +2055,9 @@ pagebuf_iodone_daemon(
> >	spin_unlock_irq(&current->sigmask_lock);
> >
> >	/* Migrate to the right CPU */
> >-	current->cpus_allowed = 1UL << cpu;
> >-	while (smp_processor_id() != cpu)
> >-		schedule();
> >+	set_cpus_allowed(current, 1UL << cpu);
> >+	if (cpu() != cpu)
> >+		BUG();
> >
> >	sprintf(current->comm, "pagebuf_io_CPU%d", bind_cpu);
> >	INIT_LIST_HEAD(&pagebuf_iodone_tq[cpu]);
> >
> >also remeber to apply the O_DIRECT fixes for reiserfs and ext3 (that
> >were left over after merging the new nfs stuff). all will be fixed in
> >next -aa of course.
> >
> >--- 2.4.19pre3aa1/fs/reiserfs/inode.c.~1~	Tue Mar 12 00:07:18 2002
> >+++ 2.4.19pre3aa1/fs/reiserfs/inode.c	Tue Mar 12 01:24:21 2002
> >@@ -2161,10 +2161,11 @@
> >	}
> >}
> >
> >-static int reiserfs_direct_io(int rw, struct inode *inode, 
> >+static int reiserfs_direct_io(int rw, struct file * filp,
> >                              struct kiobuf *iobuf, unsigned long blocknr,
> >			      int blocksize) 
> >{
> >+    struct inode * inode = filp->f_dentry->d_inode->i_mapping->host;
> >    return generic_direct_IO(rw, inode, iobuf, blocknr, blocksize,
> >                             reiserfs_get_block_direct_io) ;
> >}
> >--- 2.4.20pre5aa2/fs/ext3/inode.c.~1~	Mon Sep  9 02:38:08 2002
> >+++ 2.4.20pre5aa2/fs/ext3/inode.c	Tue Sep 10 05:22:18 2002
> >@@ -1385,9 +1385,10 @@ static int ext3_releasepage(struct page 
> >}
> >
> >static int
> >-ext3_direct_IO(int rw, struct inode *inode, struct kiobuf *iobuf,
> >+ext3_direct_IO(int rw, struct file * filp, struct kiobuf *iobuf,
> >		unsigned long blocknr, int blocksize)
> >{
> >+	struct inode * inode = filp->f_dentry->d_inode->i_mapping->host;
> >	struct ext3_inode_info *ei = EXT3_I(inode);
> >	handle_t *handle = NULL;
> >	int ret;
> >
> >Andrea
> >-
> >To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> >the body of a message to majordomo@vger.kernel.org
> >More majordomo info at  http://vger.kernel.org/majordomo-info.html
> >Please read the FAQ at  http://www.tux.org/lkml/
> >
> >
> > 
> >
> 

> ksymoops 2.4.5 on i686 2.4.20-pre5aa2-fixed-xfs.  Options used
>      -V (specified)
>      -k /proc/ksyms (default)
>      -l /proc/modules (default)
>      -o /lib/modules/2.4.20-pre5aa2-fixed-xfs/ (default)
>      -m /boot/System.map-2.4.20-pre5aa2-fixed-xfs (default)
> 
> kernel BUG at page_buf.c:578!
> invalid operand: 0000 2.4.20-pre5aa2-fixed-xfs #4 SMP Thu Sep 12 11:51:40 PDT 2002
> CPU:    1
> EIP:    0010:[<c0208592>]    Not tainted
> Using defaults from ksymoops -t elf32-i386 -a i386
> EFLAGS: 00010246
> eax: 00000000   ebx: 00000001   ecx: 00000001   edx: 00000000
> esi: c5e15a04   edi: c5e15980   ebp: 00000002   esp: c5c19a58
> ds: 0018   es: 0018   ss: 0018
> Process mount (pid: 805, stackpage=c5c19000)
> Stack: c5c18000 00001000 00000000 00000001 00000000 00000005 000001f0 00000002 
>        c5e15980 c5e15980 00002205 c5e20540 c02089c8 c5e15980 c5c117b4 00002205 
>        13005f90 00000000 c5912d40 13005f90 00000000 c01f4d2d c5912d40 13005f90 
> Call Trace:    [<c02089c8>] [<c01f4d2d>] [<c01f45e1>] [<c01f463a>] [<c01f58b2>]
>   [<c01f59f6>] [<c01f5b5a>] [<c01f6744>] [<c01f6c74>] [<c01f6cc4>] [<c01f6e45>]
>   [<c01efde7>] [<c01f861c>] [<c01f776b>] [<c01f77b0>] [<c01ff894>] [<c01ff97b>]
>   [<c0212ce6>] [<c0148c81>] [<c0148e9c>] [<c014dfb8>] [<c015c145>] [<c015c43b>]
>   [<c015c29c>] [<c015c904>] [<c0108d9b>]
> Code: 0f 0b 42 02 95 ab 35 c0 0f b7 47 7c 81 4f 08 04 00 00 01 8d 
> 
> 
> >>EIP; c0208592 <_pagebuf_lookup_pages+2a2/2f0>   <=====
> 
> >>esi; c5e15a04 <END_OF_CODE+7abc1/????>
> >>edi; c5e15980 <END_OF_CODE+7ab3d/????>
> >>esp; c5c19a58 <[ip_tables].data.end+116159/294761>
> 
> Trace; c02089c8 <pagebuf_get+98/120>
> Trace; c01f4d2d <xlog_recover_do_buffer_trans+fd/230>
> Trace; c01f45e1 <xlog_recover_insert_item_frontq+11/20>
> Trace; c01f463a <xlog_recover_reorder_trans+4a/90>
> Trace; c01f58b2 <xlog_recover_do_trans+52/100>
> Trace; c01f59f6 <xlog_recover_commit_trans+26/40>
> Trace; c01f5b5a <xlog_recover_process_data+12a/1d0>
> Trace; c01f6744 <xlog_do_recovery_pass+354/800>
> Trace; c01f6c74 <xlog_do_log_recovery+84/b0>
> Trace; c01f6cc4 <xlog_do_recover+24/110>
> Trace; c01f6e45 <xlog_recover+95/c0>
> Trace; c01efde7 <xfs_log_mount+77/b0>
> Trace; c01f861c <xfs_mountfs+a7c/fe0>
> Trace; c01f776b <xfs_readsb+3b/c0>
> Trace; c01f77b0 <xfs_readsb+80/c0>
> Trace; c01ff894 <xfs_cmountfs+574/610>
> Trace; c01ff97b <xfs_mount+4b/60>
> Trace; c0212ce6 <linvfs_read_super+f6/240>
> Trace; c0148c81 <get_sb_bdev+1b1/230>
> Trace; c0148e9c <do_kern_mount+5c/120>
> Trace; c014dfb8 <link_path_walk+918/a20>
> Trace; c015c145 <do_add_mount+75/180>
> Trace; c015c43b <do_mount+14b/170>
> Trace; c015c29c <copy_mount_options+4c/a0>
> Trace; c015c904 <sys_mount+a4/100>
> Trace; c0108d9b <system_call+33/38>
> 
> Code;  c0208592 <_pagebuf_lookup_pages+2a2/2f0>
> 00000000 <_EIP>:
> Code;  c0208592 <_pagebuf_lookup_pages+2a2/2f0>   <=====
>    0:   0f 0b                     ud2a      <=====
> Code;  c0208594 <_pagebuf_lookup_pages+2a4/2f0>
>    2:   42                        inc    %edx
> Code;  c0208595 <_pagebuf_lookup_pages+2a5/2f0>
>    3:   02 95 ab 35 c0 0f         add    0xfc035ab(%ebp),%dl
> Code;  c020859b <_pagebuf_lookup_pages+2ab/2f0>
>    9:   b7 47                     mov    $0x47,%bh
> Code;  c020859d <_pagebuf_lookup_pages+2ad/2f0>
>    b:   7c 81                     jl     ffffff8e <_EIP+0xffffff8e>
> Code;  c020859f <_pagebuf_lookup_pages+2af/2f0>
>    d:   4f                        dec    %edi
> Code;  c02085a0 <_pagebuf_lookup_pages+2b0/2f0>
>    e:   08 04 00                  or     %al,(%eax,%eax,1)
> Code;  c02085a3 <_pagebuf_lookup_pages+2b3/2f0>
>   11:   00 01                     add    %al,(%ecx)
> Code;  c02085a5 <_pagebuf_lookup_pages+2b5/2f0>
>   13:   8d 00                     lea    (%eax),%eax
> 



Andrea

  parent reply	other threads:[~2002-09-13  0:18 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-09-11 18:16 2.4.20pre5aa2 Christian Guggenberger
2002-09-11 18:24 ` 2.4.20pre5aa2 Austin Gonyou
2002-09-11 18:28   ` 2.4.20pre5aa2 Christian Guggenberger
     [not found]     ` <1031769317.24629.28.camel@UberGeek.coremetrics.com>
2002-09-11 18:45       ` 2.4.20pre5aa2 Christian Guggenberger
2002-09-11 18:51         ` 2.4.20pre5aa2 Austin Gonyou
2002-09-11 18:41   ` 2.4.20pre5aa2 Andrea Arcangeli
2002-09-12 23:29     ` 2.4.20pre5aa2 Samuel Flory
2002-09-12 23:45       ` 2.4.20pre5aa2 Stephen Lord
2002-09-13  0:06         ` 2.4.20pre5aa2 Samuel Flory
2002-09-13  0:23       ` Andrea Arcangeli [this message]
2002-09-13  0:47         ` 2.4.20pre5aa2 Stephen Lord
2002-09-13  0:54           ` 2.4.20pre5aa2 Andrea Arcangeli
2002-09-13  2:14             ` 2.4.20pre5aa2 Samuel Flory
2002-09-13 12:53               ` 2.4.20pre5aa2 Andrea Arcangeli
2002-09-13 21:09                 ` 2.4.20pre5aa2 Samuel Flory
2002-09-13 21:18                   ` 2.4.20pre5aa2 Andrea Arcangeli
2002-09-14 14:39                     ` 2.4.20pre5aa2 Stephen Lord
2002-09-15 11:13                       ` 2.4.20pre5aa2 Andi Kleen
2002-09-15 19:39                         ` 2.4.20pre5aa2 Samuel Flory
2002-09-16 16:03                 ` 2.4.20pre5aa2 Dave Hansen
2002-09-16 16:20                   ` 2.4.20pre5aa2 Andrea Arcangeli
2002-09-16 16:39                     ` 2.4.20pre5aa2 Dave Hansen
2002-09-13  1:27           ` 2.4.20pre5aa2 Samuel Flory
2002-09-13  2:14             ` 2.4.20pre5aa2 Samuel Flory
2002-09-13  1:18         ` 2.4.20pre5aa2 Samuel Flory
2002-09-13 19:17           ` 2.4.20pre5aa2 Stephen Lord
2002-09-11 18:44 ` 2.4.20pre5aa2 Christoph Hellwig
2002-09-11 19:11   ` 2.4.20pre5aa2 Christian Guggenberger
  -- strict thread matches above, loose matches on Subject: below --
2002-09-09 16:50 2.4.20pre5aa2 Andrea Arcangeli
2002-09-10 18:51 ` 2.4.20pre5aa2 Joe Kellner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20020913002316.GG11605@dualathlon.random \
    --to=andrea@suse.de \
    --cc=austin@coremetrics.com \
    --cc=christian.guggenberger@physik.uni-regensburg.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-xfs@oss.sgi.com \
    --cc=sflory@rackable.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.