Packet loss every 30.999 seconds
alfred at freebsd.org
Fri Dec 21 16:26:00 PST 2007
* 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.
- Alfred Perlstein
More information about the freebsd-stable