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