diff mbox

[RFC] be2net: add rxhash support

Message ID 1298716230.8726.18.camel@edumazet-laptop
State RFC, archived
Delegated to: David Miller
Headers show

Commit Message

Eric Dumazet Feb. 26, 2011, 10:30 a.m. UTC
Le vendredi 25 février 2011 à 15:35 -0600, Ajit Khaparde a écrit :

> I asked that because, if a switch is part a of the configuration,
> the ASIC can receive packets other than the tcp flow.
> 
> And if hashing is enabled for IP packets, we can see this behavior.
> The other values indicate that hashing has been enabled for IPv4 packets.

To make sure RSS (and rxhash) was OK, I added following debugging aid :



And got following traces :

[  201.170297] change rxhash from 0 to be0b5a87
[  232.607474] bonding: bond1: Setting eth3 as active slave.
[  232.607478] bonding: bond1: making interface eth3 the new active one.
[  232.710848] change rxhash from be0b5a87 to e56a3c1e
[  300.047500] bonding: bond1: Setting eth1 as active slave.
[  300.047504] bonding: bond1: making interface eth1 the new active one.
[  300.159162] change rxhash from e56a3c1e to be0b5a87

The flip occured when I changed my active slave (bonding mode=1).

eth1 is a bnx2 NIC, while eth3 a be2net one, so its OK to change the rxhash in this case 
(different firmware/algo)

So as far as be2net is concerned, everything seems OK : all packets for 
a given flow get an unique RSS hash and can feed skb->rxhash



--
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 mbox

Patch

diff --git a/include/net/sock.h b/include/net/sock.h
index da0534d..e9b1180 100644
--- a/include/net/sock.h
+++ b/include/net/sock.h
@@ -688,6 +688,7 @@  static inline void sock_rps_save_rxhash(struct sock *sk, u32 rxhash)
 {
 #ifdef CONFIG_RPS
 	if (unlikely(sk->sk_rxhash != rxhash)) {
+		pr_err("rxhash change from %x to %x\n", sk->sk_rxhash, rxhash);
 		sock_rps_reset_flow(sk);
 		sk->sk_rxhash = rxhash;
 	}