[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>
This commit is contained in:
committed by
Tim Shimmin
parent
5e6a07dfe4
commit
7989cb8ef5
@@ -58,10 +58,10 @@
|
||||
#include <linux/kthread.h>
|
||||
#include <linux/freezer.h>
|
||||
|
||||
STATIC struct quotactl_ops xfs_quotactl_operations;
|
||||
STATIC struct super_operations xfs_super_operations;
|
||||
STATIC kmem_zone_t *xfs_vnode_zone;
|
||||
STATIC kmem_zone_t *xfs_ioend_zone;
|
||||
static struct quotactl_ops xfs_quotactl_operations;
|
||||
static struct super_operations xfs_super_operations;
|
||||
static kmem_zone_t *xfs_vnode_zone;
|
||||
static kmem_zone_t *xfs_ioend_zone;
|
||||
mempool_t *xfs_ioend_pool;
|
||||
|
||||
STATIC struct xfs_mount_args *
|
||||
@@ -121,7 +121,7 @@ xfs_max_file_offset(
|
||||
return (((__uint64_t)pagefactor) << bitshift) - 1;
|
||||
}
|
||||
|
||||
STATIC __inline__ void
|
||||
STATIC_INLINE void
|
||||
xfs_set_inodeops(
|
||||
struct inode *inode)
|
||||
{
|
||||
@@ -147,7 +147,7 @@ xfs_set_inodeops(
|
||||
}
|
||||
}
|
||||
|
||||
STATIC __inline__ void
|
||||
STATIC_INLINE void
|
||||
xfs_revalidate_inode(
|
||||
xfs_mount_t *mp,
|
||||
bhv_vnode_t *vp,
|
||||
@@ -873,7 +873,7 @@ xfs_fs_get_sb(
|
||||
mnt);
|
||||
}
|
||||
|
||||
STATIC struct super_operations xfs_super_operations = {
|
||||
static struct super_operations xfs_super_operations = {
|
||||
.alloc_inode = xfs_fs_alloc_inode,
|
||||
.destroy_inode = xfs_fs_destroy_inode,
|
||||
.write_inode = xfs_fs_write_inode,
|
||||
@@ -887,7 +887,7 @@ STATIC struct super_operations xfs_super_operations = {
|
||||
.show_options = xfs_fs_show_options,
|
||||
};
|
||||
|
||||
STATIC struct quotactl_ops xfs_quotactl_operations = {
|
||||
static struct quotactl_ops xfs_quotactl_operations = {
|
||||
.quota_sync = xfs_fs_quotasync,
|
||||
.get_xstate = xfs_fs_getxstate,
|
||||
.set_xstate = xfs_fs_setxstate,
|
||||
|
Reference in New Issue
Block a user