Date: Tue, 24 Feb 2004 15:31:05 -0500 From: Gerrit Nagelhout <gnagelhout@sandvine.com> To: "'freebsd-stable@freebsd.org'" <freebsd-stable@freebsd.org> Subject: Re: >2GB Bugs still exist in FreeBSD 4.9 ? Message-ID: <FE045D4D9F7AED4CBFF1B3B813C85337021AB1DD@mail.sandvine.com>
next in thread | raw e-mail | index | archive | help
I think this problem happens when the kernel_map runs out of memory. The actual crash happens because in vfs_subr.c around line 704, if zalloc returns NULL, the bzero will cause that trap: simple_unlock(&vnode_free_list_slock); vp = (struct vnode *) zalloc(vnode_zone); bzero((char *) vp, sizeof *vp); ****************** simple_lock_init(&vp->v_interlock); vp->v_dd = vp; cache_purge(vp); LIST_INIT(&vp->v_cache_src); TAILQ_INIT(&vp->v_cache_dst); numvnodes++; The size of the kernel memory region can be configured, and is typically around 1GB. The more RAM is present in the system, the more of this will be used up by various data structures that are tuned differently depending how much RAM is present. I think there are a few more places where running out of kernel memory will cause similar problems. Most of these places don't seem trivial to fix, and the only solution I have come up with (so far) is to tune the kernel differently to leave more memory available. Gerrit
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?FE045D4D9F7AED4CBFF1B3B813C85337021AB1DD>