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/xfs_attr.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/xfs_attr.c')
-rw-r--r-- | fs/xfs/xfs_attr.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/fs/xfs/xfs_attr.c b/fs/xfs/xfs_attr.c index 9ada7bdbae52..c6c2596e827a 100644 --- a/fs/xfs/xfs_attr.c +++ b/fs/xfs/xfs_attr.c | |||
@@ -57,9 +57,9 @@ | |||
57 | */ | 57 | */ |
58 | 58 | ||
59 | #define ATTR_SYSCOUNT 2 | 59 | #define ATTR_SYSCOUNT 2 |
60 | STATIC struct attrnames posix_acl_access; | 60 | static struct attrnames posix_acl_access; |
61 | STATIC struct attrnames posix_acl_default; | 61 | static struct attrnames posix_acl_default; |
62 | STATIC struct attrnames *attr_system_names[ATTR_SYSCOUNT]; | 62 | static struct attrnames *attr_system_names[ATTR_SYSCOUNT]; |
63 | 63 | ||
64 | /*======================================================================== | 64 | /*======================================================================== |
65 | * Function prototypes for the kernel. | 65 | * Function prototypes for the kernel. |
@@ -2477,7 +2477,7 @@ posix_acl_default_exists( | |||
2477 | return xfs_acl_vhasacl_default(vp); | 2477 | return xfs_acl_vhasacl_default(vp); |
2478 | } | 2478 | } |
2479 | 2479 | ||
2480 | STATIC struct attrnames posix_acl_access = { | 2480 | static struct attrnames posix_acl_access = { |
2481 | .attr_name = "posix_acl_access", | 2481 | .attr_name = "posix_acl_access", |
2482 | .attr_namelen = sizeof("posix_acl_access") - 1, | 2482 | .attr_namelen = sizeof("posix_acl_access") - 1, |
2483 | .attr_get = posix_acl_access_get, | 2483 | .attr_get = posix_acl_access_get, |
@@ -2486,7 +2486,7 @@ STATIC struct attrnames posix_acl_access = { | |||
2486 | .attr_exists = posix_acl_access_exists, | 2486 | .attr_exists = posix_acl_access_exists, |
2487 | }; | 2487 | }; |
2488 | 2488 | ||
2489 | STATIC struct attrnames posix_acl_default = { | 2489 | static struct attrnames posix_acl_default = { |
2490 | .attr_name = "posix_acl_default", | 2490 | .attr_name = "posix_acl_default", |
2491 | .attr_namelen = sizeof("posix_acl_default") - 1, | 2491 | .attr_namelen = sizeof("posix_acl_default") - 1, |
2492 | .attr_get = posix_acl_default_get, | 2492 | .attr_get = posix_acl_default_get, |
@@ -2495,7 +2495,7 @@ STATIC struct attrnames posix_acl_default = { | |||
2495 | .attr_exists = posix_acl_default_exists, | 2495 | .attr_exists = posix_acl_default_exists, |
2496 | }; | 2496 | }; |
2497 | 2497 | ||
2498 | STATIC struct attrnames *attr_system_names[] = | 2498 | static struct attrnames *attr_system_names[] = |
2499 | { &posix_acl_access, &posix_acl_default }; | 2499 | { &posix_acl_access, &posix_acl_default }; |
2500 | 2500 | ||
2501 | 2501 | ||