freebsd-dev/sys/gnu/fs/ext2fs
Ian Dowse 9b5ad47fb7 Bring in dirhash, a simple hash-based lookup optimisation for large
directories. When enabled via "options UFS_DIRHASH", in-core hash
arrays are maintained for large directories. These allow all
directory operations to take place quickly instead of requiring
long linear searches. For now anyway, dirhash is not enabled by
default.

The in-core hash arrays have a memory requirement that is approximately
half the size of the size of the on-disk directory file. A number
of new sysctl variables allow control over which directories get
hashed and over the maximum amount of memory that dirhash will use:

  vfs.ufs.dirhash_minsize
    The minimum on-disk directory size for which hashing should be
    used. The default is 2560 (2.5k).

  vfs.ufs.dirhash_maxmem
    The system-wide maximum total memory to be used by dirhash data
    structures. The default is 2097152 (2MB).

The current amount of memory being used by dirhash is visible
through the read-only sysctl variable vfs.ufs.dirhash_maxmem.
Finally, some extra sanity checks that are enabled by default, but
which may have an impact on performance, can be disabled by setting
vfs.ufs.dirhash_docheck to 0.

Discussed on: -fs, -hackers
2001-07-10 21:21:29 +00:00
..
COPYRIGHT.INFO Updated/corrected the list of GPL'ed files. 2000-01-01 11:27:50 +00:00
ext2_alloc.c Preceed/preceeding are not english words. Use precede or preceding. 2001-02-18 10:25:42 +00:00
ext2_balloc.c Make a panic less misleading. 2001-04-29 11:45:15 +00:00
ext2_bmap.c Remove two unused arguments from ufs_bmaparray(). 2001-04-29 10:24:58 +00:00
ext2_extern.h Support filesystems with the not-so-new "sparse_superblocks" feature. 2000-11-03 16:41:48 +00:00
ext2_fs_sb.h Fixed clean flag handling: 1998-09-26 06:18:59 +00:00
ext2_fs.h Support filesystems with the not-so-new "sparse_superblocks" feature. 2000-11-03 16:41:48 +00:00
ext2_inode_cnv.c Merged changes in ext2_fs.h between Linux 1.2.2 and Linux 2.3.35. The 2000-01-01 17:39:21 +00:00
ext2_inode.c Fix typo (accessable --> accessible). 2000-06-14 17:53:40 +00:00
ext2_linux_balloc.c Put the bits in place for Alpha support for ext2. Not tested. 2000-12-09 22:32:49 +00:00
ext2_linux_ialloc.c Put the bits in place for Alpha support for ext2. Not tested. 2000-12-09 22:32:49 +00:00
ext2_lookup.c Convert all users of fldoff() to offsetof(). fldoff() is bad 2000-10-27 11:45:49 +00:00
ext2_mount.h Remove last vestiges of MFS. 2001-05-29 21:21:53 +00:00
ext2_readwrite.c Grab the process lock while calling psignal and before calling psignal. 2001-03-07 03:37:06 +00:00
ext2_subr.c Remove blatantly pointless call to VOP_BMAP(). 2001-05-01 09:12:05 +00:00
ext2_vfsops.c Fix more mntvnode and vnode interlock order reversals. 2001-06-28 22:21:33 +00:00
ext2_vnops.c Implement vop_std{get|put}pages() and add them to the default vop[]. 2001-05-01 08:34:45 +00:00
fs.h Quick fix for not writing group descriptor group, inode bitmaps or 2000-11-10 14:54:15 +00:00
i386-bitops.h Fix __asm__ clobber list abuse. 1999-11-15 23:16:06 +00:00
inode.h Bring in dirhash, a simple hash-based lookup optimisation for large 2001-07-10 21:21:29 +00:00