Re: Packet loss every 30.999 seconds

[ Available lists | Index of freebsd-stable | Month of Dec 2007 | Week of 21 Dec 2007 | Raw email | View thread | Wrap long lines | Reply | Tag ]
From
David G Lawrence <dg@dglawrence.com>
Date
21 Dec 2007 23:43:48
Subject
Re: Packet loss every 30.999 seconds
Message-ID
20071221234347.GS25053@tnn.dglawrence.com


[ Hide this part ]
> >    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.

-DG

David G. Lawrence
President
Download Technologies, Inc. - http://www.downloadtech.com - (866) 399 8500
The FreeBSD Project - http://www.freebsd.org
Pave the road of life with opportunities.


Elapsed time: 2.087 seconds