[E1000-devel] Reg Transmit and Receive Queue hashing in igb e1000 driver
All, I found this peculiar thing regarding the hashing in RSS. According to the hashing algorithm, for a particular source and destination ip address and port numbers, the packets should be always hashed to the same queue since the hashing algorithm uses only a fixed secret key in addition to the source and dest ip and port numbers for hashing. But what happens is, when i reboot the machine, the queue assignment changes. Just wanted to know whether the hashing takes anything in consideration in addition to the above mentioned parameters? Regards, Vikram Neelakandan -- Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT is a gathering of tech-side developers brand creativity professionals. Meet the minds behind Google Creative Lab, Visual Complexity, Processing, iPhoneDevCamp as they present alongside digital heavyweights like Barbarian Group, R/GA, Big Spaceship. http://p.sf.net/sfu/creativitycat-com ___ E1000-devel mailing list E1000-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/e1000-devel
Re: [E1000-devel] Reg Transmit and Receive Queue hashing in igb e1000 driver
On Mon, 1 Jun 2009, vikram wrote: I found this peculiar thing regarding the hashing in RSS. According to the hashing algorithm, for a particular source and destination ip address and port numbers, the packets should be always hashed to the same queue since the hashing algorithm uses only a fixed secret key in addition to the source and dest ip and port numbers for hashing. But what happens is, when i reboot the machine, the queue assignment changes. Just wanted to know whether the hashing takes anything in consideration in addition to the above mentioned parameters? If the driver you're using has a get_random_bytes feeding the secret key (as some of our older drivers did) then you'll see the random queue selection after each reboot. -- Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT is a gathering of tech-side developers brand creativity professionals. Meet the minds behind Google Creative Lab, Visual Complexity, Processing, iPhoneDevCamp as they present alongside digital heavyweights like Barbarian Group, R/GA, Big Spaceship. http://p.sf.net/sfu/creativitycat-com ___ E1000-devel mailing list E1000-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/e1000-devel
Re: [E1000-devel] Reg Transmit and Receive Queue hashing in igb e1000 driver
hhmm.. In the driver i am using, the secret key is fixed, its a constant 40 byte value. In the RSS, after the hashing, rss looks at one indirection table (using the hash value obtained from the hashing algo) which has the index of the CPUs. Whichever the index that hash result in, that particular CPU (or queue) is selected. I am not sure, but i think this indirection table gets changed as a result of which the queue assignment changes. But i am not sure its done by the driver or whether the indirection table gets changed whenever reboot happens or it changes based upon the load on the queues. Please throw some light on this. On Mon, Jun 1, 2009 at 10:53 AM, Brandeburg, Jesse jesse.brandeb...@intel.com wrote: On Mon, 1 Jun 2009, vikram wrote: I found this peculiar thing regarding the hashing in RSS. According to the hashing algorithm, for a particular source and destination ip address and port numbers, the packets should be always hashed to the same queue since the hashing algorithm uses only a fixed secret key in addition to the source and dest ip and port numbers for hashing. But what happens is, when i reboot the machine, the queue assignment changes. Just wanted to know whether the hashing takes anything in consideration in addition to the above mentioned parameters? If the driver you're using has a get_random_bytes feeding the secret key (as some of our older drivers did) then you'll see the random queue selection after each reboot. -- Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT is a gathering of tech-side developers brand creativity professionals. Meet the minds behind Google Creative Lab, Visual Complexity, Processing, iPhoneDevCamp as they present alongside digital heavyweights like Barbarian Group, R/GA, Big Spaceship. http://p.sf.net/sfu/creativitycat-com ___ E1000-devel mailing list E1000-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/e1000-devel
Re: [E1000-devel] Reg Transmit and Receive queue
hi, further to our previous conversation, i would like to know in the igb e1000 for transmission of packets do they use a separate hash function? if so, any clue which does that? or else do the igb e1000 driver transmits the packets in the same queue where it had received the packet based on the RSS hash? please throw some light on this. thanks, Vikram On Thu, May 14, 2009 at 10:16 AM, Brandeburg, Jesse jesse.brandeb...@intel.com wrote: On Thu, 14 May 2009, vikram wrote: thanks a lot. that was of great help. Also it would be great if you can tell me where i can study about the hash function on both sides? is there any document on net?. search for receive side scaling at microsoft.com for RSS. for transmit, you'll just have to look at the code in 2.6.27 -- Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT is a gathering of tech-side developers brand creativity professionals. Meet the minds behind Google Creative Lab, Visual Complexity, Processing, iPhoneDevCamp asthey present alongside digital heavyweights like Barbarian Group, R/GA, Big Spaceship. http://www.creativitycat.com ___ E1000-devel mailing list E1000-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/e1000-devel
Re: [E1000-devel] Reg Transmit and Receive queue
thanks a lot. that was of great help. Also it would be great if you can tell me where i can study about the hash function on both sides? is there any document on net?. vikram On Wed, May 13, 2009 at 9:40 AM, Brandeburg, Jesse jesse.brandeb...@intel.com wrote: vikram wrote: I am vikram, a graduate student in Arizona State University. I am trying to bring up one set up where i am using igb driver e1000, where in i would like to send the Ip packets across all the queues associated with the port instead just one or two. I know some hash algorithm in kernel source code selects the queue based on some hashing mechanism but i don't know where exactly it is. if you're using 2.6.27 or newer, tx uses simple_tx_hash function for tx queue selection. rx uses a hash in hardware called RSS. varying any of the ip source/dest, source port/dest, or protocol will help distribute to any of the tx queues. Could some one please throw light on this. Also it would be great if some one could tell me how to go about making the ip packets to span across all the 4 queues instead of just one. see above. -- The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your production scanning environment may not be a perfect world - but thanks to Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700 Series Scanner you'll get full speed at 300 dpi even with all image processing features enabled. http://p.sf.net/sfu/kodak-com___ E1000-devel mailing list E1000-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/e1000-devel
Re: [E1000-devel] Reg Transmit and Receive queue
On Thu, 14 May 2009, vikram wrote: thanks a lot. that was of great help. Also it would be great if you can tell me where i can study about the hash function on both sides? is there any document on net?. search for receive side scaling at microsoft.com for RSS. for transmit, you'll just have to look at the code in 2.6.27 -- The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your production scanning environment may not be a perfect world - but thanks to Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700 Series Scanner you'll get full speed at 300 dpi even with all image processing features enabled. http://p.sf.net/sfu/kodak-com ___ E1000-devel mailing list E1000-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/e1000-devel
Re: [E1000-devel] Reg Transmit and Receive queue
vikram wrote: I am vikram, a graduate student in Arizona State University. I am trying to bring up one set up where i am using igb driver e1000, where in i would like to send the Ip packets across all the queues associated with the port instead just one or two. I know some hash algorithm in kernel source code selects the queue based on some hashing mechanism but i don't know where exactly it is. if you're using 2.6.27 or newer, tx uses simple_tx_hash function for tx queue selection. rx uses a hash in hardware called RSS. varying any of the ip source/dest, source port/dest, or protocol will help distribute to any of the tx queues. Could some one please throw light on this. Also it would be great if some one could tell me how to go about making the ip packets to span across all the 4 queues instead of just one. see above. -- The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your production scanning environment may not be a perfect world - but thanks to Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700 Series Scanner you'll get full speed at 300 dpi even with all image processing features enabled. http://p.sf.net/sfu/kodak-com ___ E1000-devel mailing list E1000-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/e1000-devel
[E1000-devel] Reg Transmit and Receive queue
Hi all, I am vikram, a graduate student in Arizona State University. I am trying to bring up one set up where i am using igb driver e1000, where in i would like to send the Ip packets across all the queues associated with the port instead just one or two. I know some hash algorithm in kernel source code selects the queue based on some hashing mechanism but i don't know where exactly it is. Could some one please throw light on this. Also it would be great if some one could tell me how to go about making the ip packets to span across all the 4 queues instead of just one. Thanks a lot, Vikram -- The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your production scanning environment may not be a perfect world - but thanks to Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700 Series Scanner you'll get full speed at 300 dpi even with all image processing features enabled. http://p.sf.net/sfu/kodak-com___ E1000-devel mailing list E1000-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/e1000-devel