Message ID | 249a7eac-6aa7-481d-b7b0-a2a3b144963f@exht1.ad.emulex.com |
---|---|
State | Changes Requested, archived |
Delegated to: | David Miller |
Headers | show |
On Mon, 2011-05-23 at 17:55 +0530, Sathya Perla wrote: > Need a random hash key to effectively hash incoming connections into > multiple RX rings. > > Signed-off-by: Sathya Perla <sathya.perla@emulex.com> > --- > drivers/net/benet/be_cmds.c | 3 ++- > 1 files changed, 2 insertions(+), 1 deletions(-) > > diff --git a/drivers/net/benet/be_cmds.c b/drivers/net/benet/be_cmds.c > index 2463b1c..81654ae 100644 > --- a/drivers/net/benet/be_cmds.c > +++ b/drivers/net/benet/be_cmds.c > @@ -1703,7 +1703,8 @@ int be_cmd_rss_config(struct be_adapter *adapter, u8 *rsstable, u16 table_size) > { > struct be_mcc_wrb *wrb; > struct be_cmd_req_rss_config *req; > - u32 myhash[10]; /* Chosen by a fair dice roll */ ? > + u32 myhash[10] = {0x0123, 0x4567, 0x89AB, 0xCDEF, 0x01EF, > + 0x0123, 0x4567, 0x89AB, 0xCDEF, 0x01EF}; > int status; > > if (mutex_lock_interruptible(&adapter->mbox_lock)) This is of course less random than the stack garbage you were presumably using before. Though I don't know to what extent random hash keys are really a good idea. I have heard the suggestion that Toeplitz hash keys should in fact be randomised per-system, so that flows will be hashed to the same queue numbers on each interface if their hash indirection tales are also the same. This would presumably be good for bonding with multiple active links, forwarding, etc., especially when multiple drivers (which currently have different behaviour) are involved. Ben.
From: Sathya Perla <sathya.perla@emulex.com> Date: Mon, 23 May 2011 17:55:27 +0530 > Need a random hash key to effectively hash incoming connections into > multiple RX rings. > > Signed-off-by: Sathya Perla <sathya.perla@emulex.com> You're saying you need a random hash key, yet you're assigning a constant. Why not use a real random number, via get_random() or similar? -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
> -----Original Message----- > From: David Miller [mailto:davem@davemloft.net] > Sent: Tuesday, May 24, 2011 1:22 AM > To: Perla, Sathya > Cc: netdev@vger.kernel.org > Subject: Re: [PATCH] be2net: hash key for rss-config cmd not set > > From: Sathya Perla <sathya.perla@emulex.com> > Date: Mon, 23 May 2011 17:55:27 +0530 > > > Need a random hash key to effectively hash incoming connections into > > multiple RX rings. > > > > Signed-off-by: Sathya Perla <sathya.perla@emulex.com> > > You're saying you need a random hash key, yet you're assigning > a constant. > > Why not use a real random number, via get_random() or similar? I meant to say a non-zero, non-descript value is needed as the hash key. That was the reason I had left the hash variable un-initialized; but on some systems I get a zero value and hashing is not effective. The constant value I tried (not of any significance) seems to work fine. Pls let me know if you want me to re-send the patch with a more-descriptive changelog... thanks. -Sathya -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
From: <Sathya.Perla@Emulex.Com> Date: Mon, 23 May 2011 22:46:48 -0700 > Pls let me know if you want me to re-send the patch with a more-descriptive changelog... Yes, I do. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/net/benet/be_cmds.c b/drivers/net/benet/be_cmds.c index 2463b1c..81654ae 100644 --- a/drivers/net/benet/be_cmds.c +++ b/drivers/net/benet/be_cmds.c @@ -1703,7 +1703,8 @@ int be_cmd_rss_config(struct be_adapter *adapter, u8 *rsstable, u16 table_size) { struct be_mcc_wrb *wrb; struct be_cmd_req_rss_config *req; - u32 myhash[10]; + u32 myhash[10] = {0x0123, 0x4567, 0x89AB, 0xCDEF, 0x01EF, + 0x0123, 0x4567, 0x89AB, 0xCDEF, 0x01EF}; int status; if (mutex_lock_interruptible(&adapter->mbox_lock))
Need a random hash key to effectively hash incoming connections into multiple RX rings. Signed-off-by: Sathya Perla <sathya.perla@emulex.com> --- drivers/net/benet/be_cmds.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-)