NetBSD/sys
bad a9d55720cc Pull in fix from FreeBSD ffs_alloc.c r121785:
Consider only cylinder groups with at least 75% of the average free space
per cylinder group and 75% of the average free inodes per cylinder group
as candidates for the creation of a new directory.  Avoids excessive I/O
scanning for a suitable cylinder group on relatively full file systems.

Tested by sborril and me.

Pullup: netbsd-6, netbsd-5


Original commit message:

Tweak the calculation of minbfree in ffs_dirpref() so that only
those cylinder groups that have at least 75% of the average free
space per cylinder group for that file system are considered as
candidates for the creation of a new directory.  The previous formula
for minbfree would set it to zero if the file system was more than
75% full, which allowed cylinder groups with no free space at all
to be chosen as candidates for directory creation, which resulted
in an expensive search for free blocks for each file that was
subsequently created in that directory.

Modify the calculation of minifree in the same way.

Decrease maxcontigdirs as the file system fills to decrease the
likelyhood that a cluster of directories will overflow the available
space in a cylinder group.

Reviewed by:	mckusick
Tested by:	kmarx@vicor.com
MFC after:	2 weeks
2013-10-28 21:32:52 +00:00
..
altq
arch Support prefetch size. 2013-10-28 05:41:49 +00:00
coda C requires a statement after a label, and a declaration is not a 2013-10-18 00:03:35 +00:00
compat Remove a variable 2013-10-25 14:46:35 +00:00
conf revert previous 2013-10-18 08:06:06 +00:00
crypto
ddb fix userland build, by moving all the unused stuff inside ifdef _KERNEL 2013-10-19 15:20:52 +00:00
dev Add support for scratchpad buffers (required for some XHCI devices). 2013-10-28 17:49:33 +00:00
dist/pf fix compiler warnings 2013-10-20 21:05:47 +00:00
external Be strictly correct about chan->xfer_dma assignment and avoid calling 2013-10-22 16:37:08 +00:00
fs fix unused variable warnings 2013-10-20 21:13:15 +00:00
gdbscripts
ipkdb
kern vttodt_tab: index in C99 way, makes it less error-prone. 2013-10-27 16:19:33 +00:00
lib XXX: gcc initializations 2013-10-20 17:17:30 +00:00
miscfs Turn a few __unused into __diagused 2013-10-25 11:35:55 +00:00
modules linke pmf(9l) to the build 2013-10-28 20:32:14 +00:00
net Add NPF_MAX_RULES, an artificial limit (set it to 1M). 2013-10-27 16:22:08 +00:00
net80211 GC unused functions. Don't bother building ieee80211_acl.c, nothing in 2013-09-13 20:19:53 +00:00
netatalk Remove unused variable 2013-09-12 19:47:58 +00:00
netbt Remove SS_ISCONFIRMING, it is unused and TP4 will not come back. 2013-08-29 17:49:20 +00:00
netinet Mark a diagnostic-only variable 2013-10-25 16:23:46 +00:00
netinet6 Mark a variable as used only in diagnostic kernels 2013-10-25 15:44:39 +00:00
netipsec make debugging code use __func__ 2013-09-19 19:29:35 +00:00
netisdn
netkey
netmpls reserve space for ICMP header accordingly to RFC4884 2013-08-07 06:55:00 +00:00
netnatm
netsmb
nfs Mark a potentially unused variable 2013-10-25 20:46:29 +00:00
opencrypto Remove unused variable 2013-09-12 13:12:35 +00:00
rump Enable holding implicit threads over explicit scheduling points (i.e. 2013-10-27 20:25:45 +00:00
secmodel
stand
sys install lua.h 2013-10-27 08:35:40 +00:00
ufs Pull in fix from FreeBSD ffs_alloc.c r121785: 2013-10-28 21:32:52 +00:00
uvm Mark a diagnostic-only variable 2013-10-25 20:28:33 +00:00
Makefile