Date: Sat, 25 Oct 1997 01:20:01 -0700 (PDT) From: Matt Dillon <dillon@best.net> To: freebsd-bugs Subject: Re: kern/4844: VM lookup, endless loop in vm_map_lookup_entry() Message-ID: <199710250820.BAA21715@hub.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR kern/4844; it has been noted by GNATS. From: Matt Dillon <dillon@best.net> To: Bruce Evans <bde@zeta.org.au> 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. <dillon@best.net> [always include a portion of the original email in any response!]
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199710250820.BAA21715>