[Click] About queues scheduling

Cliff Frey cliff at meraki.com
Fri Apr 22 12:22:06 EDT 2011


On Fri, Apr 22, 2011 at 12:59 AM, Roberto Riggio <
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...
>>
>
> what is the meaning of the _tasks_per_iter variable? Which are the
> sideeffects of lowering it? Does it means that tasks (and timers???) will be
> checked fewer times
> per iteration allowing click to schedule also (for example) the kerneltun
> element?


I'm not positive off the top of my head, would need to look at the source,
but essentially yes, I think it is the number of task runs between checking
timers/select().


> I can look into giving you an updated KernelTun with a BURST param if you
>> are interested, but it might take me a few days to get to it.
>>
> Shall the BURST param allow to iterate N times over this
>
>    int cc = read(_fd, p->data(), _mtu_in);
>
> and the following if block in KernelTun::selected?
>

Give or take, yes.  It also needs to create a new packet each time.  You
also need to ignore EAGAIN (well, break out of the loop, but don't print
anything or treat it as an error).

Cliff


More information about the click mailing list