freebsd-skq/sys
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
..
alpha A set of changes to reduce the number of include files the kernel 2001-07-08 04:56:07 +00:00
amd64 A set of changes to reduce the number of include files the kernel 2001-07-08 04:56:07 +00:00
arm Don't need the .keep_me files. Obrien and I committed past each other. 2001-07-01 23:35:44 +00:00
boot Make this build again after breakage from previous commits. 2001-07-10 16:18:20 +00:00
cam Add SYSCTL ints for default normal I/O timeout && retry counts. 2001-07-09 19:18:00 +00:00
coda Warning fix: coda_fbsd.c:113: warning: unused variable `ret' 2001-06-15 00:02:27 +00:00
compat o Replace calls to p_can(..., P_CAN_xxx) with calls to p_canxxx(). 2001-07-05 17:10:46 +00:00
conf Bring in dirhash, a simple hash-based lookup optimisation for large 2001-07-10 21:21:29 +00:00
contrib Merge FreeBSD-specific changes. 2001-06-29 20:19:59 +00:00
crypto properly check DES weak key. KAME PR 363. 2001-07-03 17:46:48 +00:00
ddb A set of changes to reduce the number of include files the kernel 2001-07-08 04:56:07 +00:00
dev Fix dependencies between kernel options: 2001-07-10 14:13:34 +00:00
fs o Replace calls to p_can(..., P_CAN_xxx) with calls to p_canxxx(). 2001-07-05 17:10:46 +00:00
geom Polish error handling with biofinish(). 2001-05-08 09:10:27 +00:00
gnu Bring in dirhash, a simple hash-based lookup optimisation for large 2001-07-10 21:21:29 +00:00
i4b Submitted by: Juha-Matti Liukkonen (Cubical Solutions Ltd) (jml@cubical.fi) 2001-05-25 08:43:30 +00:00
i386 Bring in dirhash, a simple hash-based lookup optimisation for large 2001-07-10 21:21:29 +00:00
ia64 A set of changes to reduce the number of include files the kernel 2001-07-08 04:56:07 +00:00
isa Log when the user is turning debugging on/off. 2001-07-09 21:11:10 +00:00
isofs/cd9660 - FDESC, FIFO, NULL, PORTAL, PROC, UMAP and UNION file 2001-05-23 09:42:29 +00:00
kern Constify the fstype argument to vfs_mount(). This eliminates at least one 2001-07-09 19:11:51 +00:00
libkern A set of changes to reduce the number of include files the kernel 2001-07-08 04:56:07 +00:00
modules turn on the null-modem device. 2001-07-08 04:17:26 +00:00
net unbreak building kernel without option INET6 2001-07-05 14:42:54 +00:00
netatalk Mechanical change to use <sys/queue.h> macro API instead of 2001-02-04 13:13:25 +00:00
netatm Silence some warnings 2001-03-20 10:42:49 +00:00
netgraph Fix warning: (int/long mixup in printf) 2001-06-15 07:35:25 +00:00
netinet mdoc(7) police: removed HISTORY info from the .Os call. 2001-07-10 13:41:46 +00:00
netinet6 soopt_mcopyout() frees mbuf if error occurs, and DOES NOT free it if it is 2001-07-08 18:06:03 +00:00
netipx Undo part of the tangle of having sys/lock.h and sys/mutex.h included in 2001-05-01 08:13:21 +00:00
netkey Sync with recent KAME. 2001-06-11 12:39:29 +00:00
netnatm Change a couple of M_WAITOKs used in M_PREPEND() to M_TRYWAITs, which 2001-04-05 04:20:48 +00:00
netncp Fix warning: 203: implicit declaration of function `kernel_sysctlbyname' 2001-06-15 07:37:01 +00:00
netns
netsmb Remove bogus include. 2001-06-14 11:05:01 +00:00
nfs - Sort includes. 2001-07-04 20:14:59 +00:00
nfsclient - Sort includes. 2001-07-04 20:14:59 +00:00
nfsserver With Alfred's permission, remove vm_mtx in favor of a fine-grained approach 2001-07-04 16:20:28 +00:00
pc98 Added #include <sys/proc.h> 2001-07-10 09:59:52 +00:00
pccard Use INTR_TYPE_AV rather than INTR_TYPE_MISC for the interrupt for 2001-07-10 04:43:21 +00:00
pci Apply patch supplied by Jonathan Chen: use the correct arguments to 2001-07-09 17:58:42 +00:00
posix4 o Replace calls to p_can(..., P_CAN_xxx) with calls to p_canxxx(). 2001-07-05 17:10:46 +00:00
powerpc Move vm_page_zero_idle() from machine-dependant sections to a 2001-07-05 01:32:42 +00:00
rpc Bring in a hybrid of SunSoft's transport-independent RPC (TI-RPC) and 2001-03-19 12:50:13 +00:00
sparc64/compile Obrien created this directory, but I didn't cvs add cvsignore 2001-07-01 23:37:03 +00:00
svr4
sys Constify the fstype argument to vfs_mount(). This eliminates at least one 2001-07-09 19:11:51 +00:00
tools replace calls to non-existant bail() subroutine with calls to 2001-03-23 11:48:50 +00:00
ufs Bring in dirhash, a simple hash-based lookup optimisation for large 2001-07-10 21:21:29 +00:00
vm Fix missing newline and terminator at the end of the vm.zone sysctl. 2001-07-09 03:37:33 +00:00
Makefile