Packet loss every 30.999 seconds

David G Lawrence dg at
Fri Dec 21 15:43:49 PST 2007

> >    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.


David G. Lawrence
Download Technologies, Inc. - - (866) 399 8500
The FreeBSD Project -
Pave the road of life with opportunities.

More information about the freebsd-net mailing list