Date: Tue, 25 Jul 1995 10:52:02 +0100 (BST) From: Doug Rabson <dfr@render.com> To: John Dyson <dyson@freefall.cdrom.com> Cc: dillon@blob.best.net, bugs@freebsd.org Subject: Re: brelse() panic in nfs_read()/nfs_bioread() Message-ID: <Pine.BSF.3.91.950725105045.230E@minnow.render.com> In-Reply-To: <199507250322.UAA04874@freefall.cdrom.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, 24 Jul 1995, John Dyson wrote: > > The sequence of events in nfs_bioread is more-or-less: > > > > vfs_busy_pages(bp, 0); > > <read data into buffer> > > biodone(bp); /* called from nfs_doio */ > > ... > > uiomove(...); > > ... > > brelse(bp); > > > > Is it possible that the pages can be reclaimed between the biodone(bp) > > and the brelse(bp). The buffer is still busy, so another getblk will > > wait until the release but the pages are 'unbusied' in biodone. If a > > sleep happens in uiomove as a result of a pagefault, then perhaps the VM > > system snatches the pages away then. > > > > One could fix this by surrounding the uiomove with calls to > > vfs_busy_pages and vfs_unbusy_pages. There must be a better way though. > > > Doug, your were close in on the right area where there is/was a bug. > I just submitted a fix to vfs_unbusy_pages to DG for his review/mods > that should solve some problems. It appears that the bogus page > handling was faulty for the 2nd and subsequent pages in a buffer. > This only manifests itself on read-aheads on VREG files. It is > most likely a major component (perhaps the only component) of the > elusive problem that you and others have been seeing. > > A person that DG has been working with fairly closely noticed that > the situation got much better when the async daemons were turned > off. I had my suspicions -- and noticed that foff was not being > incremented properly in vfs_unbusy_pages!!! > > DG will probably test and commit this change soon... This is good news; I just saw the commit mail go past. Is it possible that this affects Karl Denninger's problem as well? -- Doug Rabson, Microsoft RenderMorphics Ltd. Mail: dfr@render.com Phone: +44 171 251 4411 FAX: +44 171 251 0939
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.3.91.950725105045.230E>