Brandeburg, Jesse wrote: > Roman Chertov wrote: >> I have a question regarding multi-queue support. I noticed that >> current NAPI code only deals with one queue; however, it appears that >> the >> support for multiple rings is there. > > Which driver are you referring to? In general yes, we support multiple > RX queues with NAPI enabled on 2.6.24 and later kernels. We also have > an upcoming driver release to make the drivers capable of multiple RX > queues on older kernels with NAPI enabled. Currently you need to > disable NAPI to get multi-rx on <= 2.6.23 kernels. > >> So if multiple receive and transmit rings were enabled how does the >> driver decide which ring to use or is it the task of whoever manages >> the driver? For instance, does it imply that a polling thread must >> exist >> per input ring? If so, then how does the polling code know which >> packets belong to it? > > each queue gets its own msi-x vector and each queue only gets packets > which match the RSS hash for that queue. There are separate hardware > resources for each queue and the driver has a ring struct for each queue > to maintain separate state.
Can you point me to some information regarding the RSS hash and how it is setup? Thank you for the informative reply. Roman > >> In the transmit case. Can then multiple threads write to their >> respective transmit rings and trigger a TX? Then, I would assume the >> card would just run some scheduler and drain the rings according to >> some schedule. Is this a correct assumption? > > yes, the card by default runs a round robin scheduler for the tx queues, > and each queue works to transmit and complete its tx rings > independently. > > Hope this helps, > Jesse > ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ E1000-devel mailing list E1000-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/e1000-devel