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

Reply via email to