Rob Gubler wrote:
> Hello,
> 
> Is it possible to assign specific processors to do the work for specific
> NICs?  When I start RTNet and look at /proc/xenomai/sched I see that all of
> the RTNet threads are allocated to the 5th processor.  I have an 8 processor

Check out /proc/xenomai/affinity. This mask allows to control to which
CPU the next RT tasks and RT IRQs will be bound. Typically used to push
RT load on a dedicated CPU, leaving the other(s) for non RT.

> machine, with 24 Intel e1000 NICs.   I'd like to be able to distribute the
> work across all the processors.

Oh, 24 NICs, 8 CPUs...

> 
> For my particular program, I am only sending and receiving raw Ethernet
> packets.  So, what I think I'm asking for is, is it possible to for the
> e1000 driver to spawn send/recv threads on multiple processors on a per NIC
> basis?  So for example, NICs 1 and 2 are handled by a single thread running
> on processor 1.  This way all the interrupts, and transmit / receive queues
> are handled by a single processor. By doing this I would be able to
> parallelize sending and receiving and improve performance in my code.
> 
> I have a feeling what I want doesn't exist currently??  Or, I misunderstand
> how RTNet utilizes the processors?  Can someone shed some light on this??

Be warned about some bottlenecks in the Xenomai's and RTnet's design
regarding SMP:

First, Xenomai does not yet scale over arbitrary amounts of CPUs. For
simplicity and robustness reasons, it is built around a central lock,
and if too many CPUs compete for it, you may see increasingly high
latencies.

And second, RTnet so far handles RX dispatching in a single RT task (the
"stack manager"). So even if you distribute the IRQs of your NICs over
several CPUs (how many different IRQs do you have, BTW?), that RX task
will serialize all the job on a single CPU again. That's unfortunate,
and needs to be overcome. Specifically for raw Ethernet, there is no
real need for a dispatcher task as dispatching is very light-weight and
could be done in IRQ context directly. Still, this needs to be implemented.

Both issues are resolvable, but not with one or two patches.

Jan

-- 
Siemens AG, Corporate Technology, CT SE 2
Corporate Competence Center Embedded Linux

-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
RTnet-users mailing list
RTnet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rtnet-users

Reply via email to