diff options
author | dillon <dillon@FreeBSD.org> | 2000-03-27 21:29:33 +0000 |
---|---|---|
committer | dillon <dillon@FreeBSD.org> | 2000-03-27 21:29:33 +0000 |
commit | 8fb4c6b599d7fa91e11e38647e849dbac3dabf29 (patch) | |
tree | 55f8e3dfdbb9d5e1d0567a11c82edd6f9e7e8600 /sys/fs | |
parent | 5c16c2a8f10491c18e04caf839491a5a2ec6320c (diff) | |
download | FreeBSD-src-8fb4c6b599d7fa91e11e38647e849dbac3dabf29.zip FreeBSD-src-8fb4c6b599d7fa91e11e38647e849dbac3dabf29.tar.gz |
Commit the buffer cache cleanup patch to 4.x and 5.x. This patch fixes a
fragmentation problem due to geteblk() reserving too much space for the
buffer and imposes a larger granularity (16K) on KVA reservations for
the buffer cache to avoid fragmentation issues. The buffer cache size
calculations have been redone to simplify them (fewer defines, better
comments, less chance of running out of KVA).
The geteblk() fix solves a performance problem that DG was able reproduce.
This patch does not completely fix the KVA fragmentation problems, but
it goes a long way
Mostly Reviewed by: bde and others
Approved by: jkh
Diffstat (limited to 'sys/fs')
-rw-r--r-- | sys/fs/msdosfs/msdosfs_vfsops.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/fs/msdosfs/msdosfs_vfsops.c b/sys/fs/msdosfs/msdosfs_vfsops.c index 3c7b6b3..d5754f2 100644 --- a/sys/fs/msdosfs/msdosfs_vfsops.c +++ b/sys/fs/msdosfs/msdosfs_vfsops.c @@ -69,6 +69,8 @@ #include <msdosfs/msdosfsmount.h> #include <msdosfs/fat.h> +#define MSDOSFS_DFLTBSIZE 4096 + #if 1 /*def PC98*/ /* * XXX - The boot signature formatted by NEC PC-98 DOS looks like a @@ -627,7 +629,7 @@ mountmsdosfs(devvp, mp, p, argp) if (FAT12(pmp)) pmp->pm_fatblocksize = 3 * pmp->pm_BytesPerSec; else - pmp->pm_fatblocksize = DFLTBSIZE; + pmp->pm_fatblocksize = MSDOSFS_DFLTBSIZE; pmp->pm_fatblocksec = pmp->pm_fatblocksize / DEV_BSIZE; pmp->pm_bnshift = ffs(DEV_BSIZE) - 1; |