[E1000-devel] Reg Transmit and Receive Queue hashing in igb e1000 driver

2009-06-01 Thread vikram
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

2009-06-01 Thread Brandeburg, Jesse


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

2009-06-01 Thread vikram
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

2009-05-21 Thread vikram
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

2009-05-14 Thread vikram
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

2009-05-14 Thread Brandeburg, Jesse


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

2009-05-13 Thread Brandeburg, Jesse
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

2009-05-12 Thread vikram
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