>2GB Bugs still exist in FreeBSD 4.9 ?

Gerrit Nagelhout gnagelhout at sandvine.com
Tue Feb 24 12:31:07 PST 2004


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


More information about the freebsd-stable mailing list