aboutsummaryrefslogtreecommitdiffstats
path: root/fs/xfs/xfs_vfsops.c
diff options
context:
space:
mode:
authorDavid Chinner <dgc@sgi.com>2006-03-13 21:13:09 -0500
committerNathan Scott <nathans@sgi.com>2006-03-13 21:13:09 -0500
commit8d280b98cfe3c0b69c37d355218975c1c0279bb0 (patch)
tree2dc1deaec23a7da29b72152a4225c2600dacf1d4 /fs/xfs/xfs_vfsops.c
parent9f4cbecd7e5ee6390fecd6032dc04ca8c9805dc9 (diff)
[XFS] On machines with more than 8 cpus, when running parallel I/O
threads, the incore superblock lock becomes the limiting factor for buffered write throughput. Make the contended fields in the incore superblock use per-cpu counters so that there is no global lock to limit scalability. SGI-PV: 946630 SGI-Modid: xfs-linux-melb:xfs-kern:25106a Signed-off-by: David Chinner <dgc@sgi.com> Signed-off-by: Nathan Scott <nathans@sgi.com>
Diffstat (limited to 'fs/xfs/xfs_vfsops.c')
-rw-r--r--fs/xfs/xfs_vfsops.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/xfs/xfs_vfsops.c b/fs/xfs/xfs_vfsops.c
index 2a0a9efb8ccb..2e1045837881 100644
--- a/fs/xfs/xfs_vfsops.c
+++ b/fs/xfs/xfs_vfsops.c
@@ -55,7 +55,7 @@
55#include "xfs_clnt.h" 55#include "xfs_clnt.h"
56#include "xfs_fsops.h" 56#include "xfs_fsops.h"
57 57
58STATIC int xfs_sync(bhv_desc_t *, int, cred_t *); 58STATIC int xfs_sync(bhv_desc_t *, int, cred_t *);
59 59
60int 60int
61xfs_init(void) 61xfs_init(void)
@@ -807,6 +807,7 @@ xfs_statvfs(
807 807
808 statp->f_type = XFS_SB_MAGIC; 808 statp->f_type = XFS_SB_MAGIC;
809 809
810 xfs_icsb_sync_counters_lazy(mp);
810 s = XFS_SB_LOCK(mp); 811 s = XFS_SB_LOCK(mp);
811 statp->f_bsize = sbp->sb_blocksize; 812 statp->f_bsize = sbp->sb_blocksize;
812 lsize = sbp->sb_logstart ? sbp->sb_logblocks : 0; 813 lsize = sbp->sb_logstart ? sbp->sb_logblocks : 0;