Packet loss every 30.999 seconds

Kostik Belousov kostikbel at gmail.com
Fri Dec 21 21:37:40 PST 2007


On Fri, Dec 21, 2007 at 04:24:32PM -0800, Alfred Perlstein wrote:
> * David G Lawrence <dg at dglawrence.com> [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.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-net/attachments/20071222/f78efc7b/attachment.pgp


More information about the freebsd-net mailing list