summaryrefslogtreecommitdiffstats
path: root/sys/msdosfs
diff options
context:
space:
mode:
authordillon <dillon@FreeBSD.org>2000-03-27 21:29:33 +0000
committerdillon <dillon@FreeBSD.org>2000-03-27 21:29:33 +0000
commit8fb4c6b599d7fa91e11e38647e849dbac3dabf29 (patch)
tree55f8e3dfdbb9d5e1d0567a11c82edd6f9e7e8600 /sys/msdosfs
parent5c16c2a8f10491c18e04caf839491a5a2ec6320c (diff)
downloadFreeBSD-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/msdosfs')
-rw-r--r--sys/msdosfs/msdosfs_vfsops.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/msdosfs/msdosfs_vfsops.c b/sys/msdosfs/msdosfs_vfsops.c
index 3c7b6b3..d5754f2 100644
--- a/sys/msdosfs/msdosfs_vfsops.c
+++ b/sys/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;
OpenPOWER on IntegriCloud