[Click] About queues scheduling

Eddie Kohler kohler at cs.ucla.edu
Sat May 14 00:26:59 EDT 2011


Hi Roberto,

Following this discussion, I ended up having an idea for a more general fix. 
See the following commit:

https://github.com/kohler/click/commit/7fbfaba106244aaaf7ff1895eeb7816e4f029b24

If this works as I expect, you should see something like the following, with 
_iters_per_os == 2:

push
pull
pull
pull
push
pull
pull
pull

Reducing _iters_per_os to 1 should produce "push pull pull push pull pull", 
which is about as good as you can hope.

Nevertheless, though, adding BURST to KernelTun would help even more.

Any comments on if this helps?
E


On 5/10/11 2:36 AM, Roberto Riggio wrote:
> Il 22/04/2011 18:22, Cliff Frey ha scritto:
>>
>> On Fri, Apr 22, 2011 at 12:59 AM, Roberto Riggio
>> <roberto.riggio at create-net.org<mailto:roberto.riggio at create-net.org>>
>> 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
> click at amsterdam.lcs.mit.edu
> https://amsterdam.lcs.mit.edu/mailman/listinfo/click


More information about the click mailing list