diff options
author | Brian Behlendorf <[email protected]> | 2012-11-27 13:32:57 -0800 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2012-11-27 13:46:32 -0800 |
commit | 30315d237bb23226476b348bc591589c80597351 (patch) | |
tree | 38a004c7ec41f62a222497cdea16c7fd93f6512b /include/sys/zfs_vfsops.h | |
parent | 0e20a31b4bb7f9745fe6d5cafe513c9c1df3e933 (diff) |
Increase ZFS_OBJ_MTX_SZ to 256
Increasing this limit costs us 6144 bytes of memory per mounted
filesystem, but this is small price to pay for accomplishing
the following:
* Allows for up to 256-way concurreny when performing lookups
which helps performance when there are a large number of
processes.
* Minimizes the likelyhood of encountering the deadlock
described in issue #1101. Because vmalloc() won't strictly
honor __GFP_FS there is still a very remote chance of a
deadlock. See the zfsonlinux/spl@043f9b57 commit.
Signed-off-by: Brian Behlendorf <[email protected]>
Closes #1101
Diffstat (limited to 'include/sys/zfs_vfsops.h')
-rw-r--r-- | include/sys/zfs_vfsops.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/include/sys/zfs_vfsops.h b/include/sys/zfs_vfsops.h index 33ecf72fb..4dd46710f 100644 --- a/include/sys/zfs_vfsops.h +++ b/include/sys/zfs_vfsops.h @@ -87,7 +87,7 @@ typedef struct zfs_sb { uint64_t z_groupquota_obj; uint64_t z_replay_eof; /* New end of file - replay only */ sa_attr_type_t *z_attr_table; /* SA attr mapping->id */ -#define ZFS_OBJ_MTX_SZ 64 +#define ZFS_OBJ_MTX_SZ 256 kmutex_t z_hold_mtx[ZFS_OBJ_MTX_SZ]; /* znode hold locks */ } zfs_sb_t; |