From owner-freebsd-hackers Thu Nov 7 00:16:51 1996 Return-Path: owner-hackers Received: (from root@localhost) by freefall.freebsd.org (8.7.5/8.7.3) id AAA10606 for hackers-outgoing; Thu, 7 Nov 1996 00:16:51 -0800 (PST) Received: from root.com (implode.root.com [198.145.90.17]) by freefall.freebsd.org (8.7.5/8.7.3) with ESMTP id AAA10594; Thu, 7 Nov 1996 00:16:45 -0800 (PST) Received: from localhost (localhost [127.0.0.1]) by root.com (8.7.6/8.6.5) with SMTP id AAA02988; Thu, 7 Nov 1996 00:13:48 -0800 (PST) Message-Id: <199611070813.AAA02988@root.com> X-Authentication-Warning: implode.root.com: Host localhost [127.0.0.1] didn't use HELO protocol To: Thomas David Rivers cc: terry@lambert.org, dyson@freefall.freebsd.org, freebsd-hackers@freefall.freebsd.org Subject: Re: More info on the daily panics... In-reply-to: Your message of "Wed, 06 Nov 1996 08:00:35 EST." <199611061300.IAA02838@lakes.water.net> From: David Greenman Reply-To: dg@root.com Date: Thu, 07 Nov 1996 00:13:47 -0800 Sender: owner-hackers@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk >> > ... description delete ... >> > >> > Err, umm, ... doesn't that only fix the "free vnode isn't" >> > panic? That's really not what I'm seeing... I'm seeing >> > inode allocation panics coming from ffs_valloc.c. >> >> No. It fixes the freelist wrap error. > > Ahh... I see... I was going to elide your description, >but I'll leave it in case others missed it... > > Although this isn't the complete patch you discuss below, >I believe it to be the proper fix for 2.1.5-STABLE.... I'm >providing to a) Let others acquire it, b) Get this into 2.1.6, >c) Ensure I understand the intent of your change. > > This patch doesn't use the nice macro, but it changes getnewvnode() >to allocate a totally new node when we've wrapped around the end of >the list... > > After Terry signs off on this, can someone get it committed to >2.1.6 (nee 2.1.5-STABLE)... I think there is a lot of misinformation being bandied about this problem. In the one case of this problem that I looked into, it was caused by the v_usecount being negative. There was clearly one too many vrele's occuring somewhere. It was not caused by any sort of "freelist wrap" condition. The patch you've provided will kludge around the problem, but it is not in any sense a "fix". Each time a vnode is deallocated too many times (and thus v_usecount goes negative), you'll end up losing all of the vnodes on the freelist that follow it (potentially several thousand) because the condition will never go away. This is bad. -DG David Greenman Core-team/Principal Architect, The FreeBSD Project