From owner-freebsd-current Tue Mar 7 03:15:47 1995 Return-Path: current-owner Received: (from majordom@localhost) by freefall.cdrom.com (8.6.10/8.6.6) id DAA12869 for current-outgoing; Tue, 7 Mar 1995 03:15:47 -0800 Received: from godzilla.zeta.org.au (godzilla.zeta.org.au [203.2.228.34]) by freefall.cdrom.com (8.6.10/8.6.6) with ESMTP id DAA12861 for ; Tue, 7 Mar 1995 03:15:37 -0800 Received: (from bde@localhost) by godzilla.zeta.org.au (8.6.9/8.6.9) id VAA13544; Tue, 7 Mar 1995 21:10:44 +1000 Date: Tue, 7 Mar 1995 21:10:44 +1000 From: Bruce Evans Message-Id: <199503071110.VAA13544@godzilla.zeta.org.au> To: current@FreeBSD.org, phk@ref.tfs.com Subject: Re: the chatterbug categorized Sender: current-owner@FreeBSD.org Precedence: bulk >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