Well, if you wanted another way of doing it, you could change KernelTun to have a task, and have selected() schedule the task, and have the task go to sleep+register the select when it receives an EAGAIN. But maybe the BURST option is good enough for you, I'm not sure.
Cliff On Tue, May 10, 2011 at 2:36 AM, Roberto Riggio < [email protected]> wrote: > Il 22/04/2011 18:22, Cliff Frey ha scritto: > > > On Fri, Apr 22, 2011 at 12:59 AM, Roberto Riggio < > [email protected]> wrote: > >> Il 22/04/2011 09:31, Cliff Frey ha scritto: >> >> Oh yes, sorry for misunderstanding. >>> >>> We actually had issues with KernelTun. We ended up adding a BURST >>> parameter to it. There are weird interactions between selected() and tasks >>> where selected() does not get called as often as one might hope. You could >>> also try changing the _tasks_per_iter to be much much lower (like 2) and see >>> if it helps... >>> >> >> I did try to implement this and it does work as expected, still after > pulling N packets (e.g. 10) > click tries pulling from the queue until the queue goes to sleep. Only the > the kerneltun > element seems scheduled again. > > R. > _______________________________________________ click mailing list [email protected] https://amsterdam.lcs.mit.edu/mailman/listinfo/click
