From 47f728c0bc17917916748b0d7360860e771bcccf Mon Sep 17 00:00:00 2001 From: obrien Date: Mon, 2 Aug 2004 21:52:43 +0000 Subject: [PATCH] Put a cap on the auto-tuning of kern.maxvnodes. Cap value chosen by: scottl --- sys/kern/vfs_subr.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c index 4d67de05e341..52f564f58371 100644 --- a/sys/kern/vfs_subr.c +++ b/sys/kern/vfs_subr.c @@ -257,6 +257,8 @@ int (*softdep_process_worklist_hook)(struct mount *); /* * Initialize the vnode management data structures. */ +#define MAX_SAFE_MAXVNODES 100000 + static void vntblinit(void *dummy __unused) { @@ -270,6 +272,12 @@ vntblinit(void *dummy __unused) */ desiredvnodes = min(maxproc + cnt.v_page_count / 4, 2 * vm_kmem_size / (5 * (sizeof(struct vm_object) + sizeof(struct vnode)))); + if (desiredvnodes > MAX_SAFE_MAXVNODES) { + if (bootverbose) + printf("Reducing kern.maxvnodes %d -> %d\n", + desiredvnodes, MAX_SAFE_MAXVNODES); + desiredvnodes = MAX_SAFE_MAXVNODES; + } minvnodes = desiredvnodes / 4; mtx_init(&mountlist_mtx, "mountlist", NULL, MTX_DEF); mtx_init(&mntid_mtx, "mntid", NULL, MTX_DEF);