Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 7 Mar 1995 21:10:44 +1000
From:      Bruce Evans <bde@zeta.org.au>
To:        current@FreeBSD.org, phk@ref.tfs.com
Subject:   Re: the chatterbug categorized
Message-ID:  <199503071110.VAA13544@godzilla.zeta.org.au>

next in thread | raw e-mail | index | archive | help
>I belive that David and I have understood the chatterbug, now we just
>need to find it and fix it.

>What happens is that some vnodes are not properly freed when the vm_object
>is freed, this has two effects:  one is that the list of free vnodes are
>too short to make the name-cache efficient (the chatter) and the other
>is that the system will continue to allocate more vnodes, (the gradual
>loss of available memory)

>Now to isolate it, we need to know when it happens, I can reproduce it here
>with:
>	cd /usr/src/release
>	make release CHROOTDIR=<500Mb space>

There seems to be a problem with the increment of object->ref_count in
vm_mmap.c.

I isolated the following bad behaviour: after `cp /bin/echo /tmp; chmod
777 /tmp/echo; /tmp/echo; rm /tmp/echo', /tmp/echo becomes an unreferenced
file with a v_usecount == 1 because the object->ref_count is 4 or 5 in
vm_object_deallocate() so the vnode doesn't get released.  It's easy
to see the unreferenced file by running fsck.  It may be important that
my /bin/echo is linked dynamic.  ld.so calls mmap() 3 or 4 times.

Bruce



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199503071110.VAA13544>