[Click] Click and e1000e
Eddie Kohler
kohler at cs.ucla.edu
Wed Aug 27 12:38:23 EDT 2008
Adam Greenhalgh wrote:
> Unless I've miss understood click's threading model, a single poll
> device element with multiple outputs can only be assigned to one
> thread and hence once cpu. To be able to poll a 10G interface at line
> rate you need to assign between 3 and 4 cpus to the device, hence the
> need for multiple elements. A single core of a 2.6Ghz Xeon can only
> poll about 2.8 Mp/s .
* This does misunderstand Click's threading model. Elements are not assigned
to RouterThreads, Task objects are; and although no current element has
multiple Tasks, there's no inherent reason why not. PollDevice could have N
Task objects, one per device queue.
* Nevertheless, I think one-element-per-queue might fit the Click style a
little better. And it wouldn't be that hard to implement, I think.
* One reason to use a single element for the device might be if switching a
device to polling mode by necessity claims all of its queues (stops Linux from
processing any of the device's queues). In that case, might it be easier to
understand if the device element claims all queues?
Overall I'd say I leaned towards one element per device queue, with something
like a SUBDEVICE keyword argument that took a list of queues to poll.
Eddie
>
> Adam
> _______________________________________________
> click mailing list
> click at amsterdam.lcs.mit.edu
> https://amsterdam.lcs.mit.edu/mailman/listinfo/click
More information about the click
mailing list