Re: kernel OOPS for XFS in xfs_iget_core (using NFS+SMP+MD)

Chris Wedgwood
2005-05-19T21:27:23Z

On Thu, May 19, 2005 at 05:00:22PM -0400, Joshua Baker-LePain wrote:

> May 19 16:47:10 norbert kernel: xfs_da_do_buf: bno 8388608
> May 19 16:47:10 norbert kernel: dir: inode 2162706
> May 19 16:47:10 norbert kernel: Filesystem "md0": XFS internal error xfs_da_do_buf(1) at line 2176 of file fs/xfs/xfs_da_btree.c. Caller 0xf8c90148
> May 19 16:47:10 norbert kernel: [<f8c8fd5b>] xfs_da_do_buf+0x357/0x70d [xfs]

This isn't what was reported before. Maybe check inode 2162706 on
disk using xfs_db and make sure it looks OK?

As pointed out it is a really long call-chain --- I'm guessing it's OK
but it could still be a stack overflow problem as with 8K stacks you
don't have separate IRQ stacks.

If you like you could apply the following patch and *enable*
CONFIG_4KSTACKS. In this case is badly named as you will really have
8K process stacks and 4K irq stacks after applying this.

Index: cw-current/include/asm-i386/thread_info.h
===================================================================
--- cw-current.orig/include/asm-i386/thread_info.h 2004-12-15 14:35:00.296402459 -0800
+++ cw-current/include/asm-i386/thread_info.h 2004-12-15 14:38:20.129259160 -0800
@@ -54,12 +54,12 @@

#define PREEMPT_ACTIVE 0x10000000
#ifdef CONFIG_4KSTACKS
-#define THREAD_SIZE (4096)
+#define THREAD_SIZE (8192)
#else
#define THREAD_SIZE (8192)
#endif

-#define STACK_WARN (THREAD_SIZE/8)
+#define STACK_WARN (THREAD_SIZE/2)
/*
* macros/functions for gaining access to the thread information structure
*