diff options
author | David Chinner <dgc@sgi.com> | 2007-02-10 02:34:56 -0500 |
---|---|---|
committer | Tim Shimmin <tes@sgi.com> | 2007-02-10 02:34:56 -0500 |
commit | 7989cb8ef5dbc1411d3be48218c7b25ef6e71699 (patch) | |
tree | 607efa745911951a30712de44a837c1df952bd3a /fs/xfs/linux-2.6/xfs_super.c | |
parent | 5e6a07dfe404cd4d8494d842b54706cb007fa04b (diff) |
[XFS] Keep stack usage down for 4k stacks by using noinline.
gcc-4.1 and more recent aggressively inline static functions which
increases XFS stack usage by ~15% in critical paths. Prevent this from
occurring by adding noinline to the STATIC definition.
Also uninline some functions that are too large to be inlined and were
causing problems with CONFIG_FORCED_INLINING=y.
Finally, clean up all the different users of inline, __inline and
__inline__ and put them under one STATIC_INLINE macro. For debug kernels
the STATIC_INLINE macro uninlines those functions.
SGI-PV: 957159
SGI-Modid: xfs-linux-melb:xfs-kern:27585a
Signed-off-by: David Chinner <dgc@sgi.com>
Signed-off-by: David Chatterton <chatz@sgi.com>
Signed-off-by: Tim Shimmin <tes@sgi.com>
Diffstat (limited to 'fs/xfs/linux-2.6/xfs_super.c')
-rw-r--r-- | fs/xfs/linux-2.6/xfs_super.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/fs/xfs/linux-2.6/xfs_super.c b/fs/xfs/linux-2.6/xfs_super.c index b93265b7c79c..dab5d3802374 100644 --- a/fs/xfs/linux-2.6/xfs_super.c +++ b/fs/xfs/linux-2.6/xfs_super.c | |||
@@ -58,10 +58,10 @@ | |||
58 | #include <linux/kthread.h> | 58 | #include <linux/kthread.h> |
59 | #include <linux/freezer.h> | 59 | #include <linux/freezer.h> |
60 | 60 | ||
61 | STATIC struct quotactl_ops xfs_quotactl_operations; | 61 | static struct quotactl_ops xfs_quotactl_operations; |
62 | STATIC struct super_operations xfs_super_operations; | 62 | static struct super_operations xfs_super_operations; |
63 | STATIC kmem_zone_t *xfs_vnode_zone; | 63 | static kmem_zone_t *xfs_vnode_zone; |
64 | STATIC kmem_zone_t *xfs_ioend_zone; | 64 | static kmem_zone_t *xfs_ioend_zone; |
65 | mempool_t *xfs_ioend_pool; | 65 | mempool_t *xfs_ioend_pool; |
66 | 66 | ||
67 | STATIC struct xfs_mount_args * | 67 | STATIC struct xfs_mount_args * |
@@ -121,7 +121,7 @@ xfs_max_file_offset( | |||
121 | return (((__uint64_t)pagefactor) << bitshift) - 1; | 121 | return (((__uint64_t)pagefactor) << bitshift) - 1; |
122 | } | 122 | } |
123 | 123 | ||
124 | STATIC __inline__ void | 124 | STATIC_INLINE void |
125 | xfs_set_inodeops( | 125 | xfs_set_inodeops( |
126 | struct inode *inode) | 126 | struct inode *inode) |
127 | { | 127 | { |
@@ -147,7 +147,7 @@ xfs_set_inodeops( | |||
147 | } | 147 | } |
148 | } | 148 | } |
149 | 149 | ||
150 | STATIC __inline__ void | 150 | STATIC_INLINE void |
151 | xfs_revalidate_inode( | 151 | xfs_revalidate_inode( |
152 | xfs_mount_t *mp, | 152 | xfs_mount_t *mp, |
153 | bhv_vnode_t *vp, | 153 | bhv_vnode_t *vp, |
@@ -873,7 +873,7 @@ xfs_fs_get_sb( | |||
873 | mnt); | 873 | mnt); |
874 | } | 874 | } |
875 | 875 | ||
876 | STATIC struct super_operations xfs_super_operations = { | 876 | static struct super_operations xfs_super_operations = { |
877 | .alloc_inode = xfs_fs_alloc_inode, | 877 | .alloc_inode = xfs_fs_alloc_inode, |
878 | .destroy_inode = xfs_fs_destroy_inode, | 878 | .destroy_inode = xfs_fs_destroy_inode, |
879 | .write_inode = xfs_fs_write_inode, | 879 | .write_inode = xfs_fs_write_inode, |
@@ -887,7 +887,7 @@ STATIC struct super_operations xfs_super_operations = { | |||
887 | .show_options = xfs_fs_show_options, | 887 | .show_options = xfs_fs_show_options, |
888 | }; | 888 | }; |
889 | 889 | ||
890 | STATIC struct quotactl_ops xfs_quotactl_operations = { | 890 | static struct quotactl_ops xfs_quotactl_operations = { |
891 | .quota_sync = xfs_fs_quotasync, | 891 | .quota_sync = xfs_fs_quotasync, |
892 | .get_xstate = xfs_fs_getxstate, | 892 | .get_xstate = xfs_fs_getxstate, |
893 | .set_xstate = xfs_fs_setxstate, | 893 | .set_xstate = xfs_fs_setxstate, |