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.
|