On Fri, Dec 21, 2007 at 04:24:32PM -0800, Alfred Perlstein wrote:
> * David G Lawrence <[EMAIL PROTECTED]> [071221 15:42] wrote:
> > > >    Unfortunately, the version of the patch that I sent out isn't going 
> > > > to
> > > > help your problem. It needs to yield at the top of the loop, but vp 
> > > > isn't
> > > > necessarily valid after the wakeup from the msleep. That's a problem 
> > > > that
> > > > I'm having trouble figuring out a solution to - the solutions that come
> > > > to mind will all significantly increase the overhead of the loop.
> > > 
> > > I apologize for not reading the code as I am swamped, but a technique
> > > that Matt Dillon used for bufs might work here.
> > > 
> > > Can you use a placeholder vnode as a place to restart the scan?
> > > you might have to mark it special so that other threads/things
> > > (getnewvnode()?) don't molest it, but it can provide for a convenient
> > > restart point.
> > 
> >    That was one of the solutions that I considered and rejected since it
> > would significantly increase the overhead of the loop.
> >    The solution provided by Kostik Belousov that uses uio_yield looks like
> > a find solution. I intend to try it out on some servers RSN.
> 
> Out of curiosity's sake, why would it make the loop slower?  one
> would only add the placeholder when yielding, not for every iteration.

Marker is already reinserted into the list on every iteration.

Attachment: pgp6Ni4c6qkSw.pgp
Description: PGP signature

Reply via email to