From owner-freebsd-bugs Sat Oct 25 01:20:03 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.7/8.8.7) id BAA21721 for bugs-outgoing; Sat, 25 Oct 1997 01:20:03 -0700 (PDT) (envelope-from owner-freebsd-bugs) Received: (from gnats@localhost) by hub.freebsd.org (8.8.7/8.8.7) id BAA21715; Sat, 25 Oct 1997 01:20:01 -0700 (PDT) (envelope-from gnats) Date: Sat, 25 Oct 1997 01:20:01 -0700 (PDT) Message-Id: <199710250820.BAA21715@hub.freebsd.org> To: freebsd-bugs Cc: From: Matt Dillon Subject: Re: kern/4844: VM lookup, endless loop in vm_map_lookup_entry() Reply-To: Matt Dillon Sender: owner-freebsd-bugs@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk The following reply was made to PR kern/4844; it has been noted by GNATS. From: Matt Dillon To: Bruce Evans Cc: FreeBSD-gnats-submit@FreeBSD.ORG Subject: Re: kern/4844: VM lookup, endless loop in vm_map_lookup_entry() Date: Sat, 25 Oct 1997 01:15:15 -0700 (PDT) :> up from system call. : :brelse/bfreekva have some problems. See PR4630, especially the followups. : :Bruce Hmm (looking at PR4630). This looks like a rather serious problem considering the core nature of brelse(). This may be responsible for several other crashes we have had involving "biodone: buffer already done" panics. We've had four or five of those. It sounds to me that a slight modification to the PR4630 suggestion would work. Rather then call bfreekva(), brelse() puts the bp on a defered free list, yes, but why not clear out this list from getnewbuf() ? I don't particularly see the need for a high priority kernel process or other complexity. If getnewbuf() (called by getblk()) is not called from an interrupt, we are home free. I don't think anyone else allocates out of the buffer_map so the defered frees would not create a secondary effect anywhere else. -Matt Matthew Dillon Engineering, BEST Internet Communications, Inc. [always include a portion of the original email in any response!]