xfs-masters
[Top] [All Lists]

[xfs-masters] Fw: [Bug 7364] nbd dead-lock/panic with 4k stack

To: xfs-masters@xxxxxxxxxxx
Subject: [xfs-masters] Fw: [Bug 7364] nbd dead-lock/panic with 4k stack
From: Andrew Morton <akpm@xxxxxxxx>
Date: Sun, 15 Oct 2006 22:07:50 -0700
Reply-to: xfs-masters@xxxxxxxxxxx
Sender: xfs-masters-bounce@xxxxxxxxxxx
He has a point.  `noinline' would be preferable though.


Begin forwarded message:

Date: Sun, 15 Oct 2006 19:18:45 -0700
From: bugme-daemon@xxxxxxxxxxxxxxxxxxx
To: akpm@xxxxxxxx
Subject: [Bug 7364] nbd dead-lock/panic with 4k stack


http://bugzilla.kernel.org/show_bug.cgi?id=7364





------- Additional Comments From redbully@xxxxxxxxxxxx  2006-10-15 19:06 -------
Maybe something like the following will help:

gcc (GCC) 4.1.1 (Gentoo 4.1.1-r1) with CONFIG_FORCED_INLINING=y (same as Bruno)
on i386

make checkstack
before: 0x0005b7b6 xfs_vn_mknod:                                400
after: 0x0005b83a xfs_vn_mknod:                         128

====================== begin patch ======================
--- linux/fs/xfs/linux-2.6/xfs_iops.c.orig      2006-10-16 02:22:19.000000000 
+0200
+++ linux/fs/xfs/linux-2.6/xfs_iops.c   2006-10-16 03:45:51.000000000 +0200
@@ -262,7 +262,11 @@
        return (task->fs != init_task.fs);
 }
 
-STATIC inline void
+/*
+ * Do not inline. We only hit this in the error path and struct dentry needs
+ * huge amounts of stack space
+ */
+STATIC void
 xfs_cleanup_inode(
        vnode_t         *dvp,
        vnode_t         *vp,
====================== end patch ======================

@XFS-People: you should realy do something about your stack usage. You nest deep
and some funcs use some stack, which sums up. Eg xfs_bmapi -> 398 bytes, lots of
funcs with 100 bytes (i think this is vattr_t, and btw, all these typedefs...)

Greetings
Jan

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.


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