rps: Inspect GRE encapsulated packets to get flow hash
authorTom Herbert <therbert@google.com>
Sun, 14 Aug 2011 19:46:29 +0000 (19:46 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 18 Aug 2011 03:06:03 +0000 (20:06 -0700)
commitc6865cb3cc6f3c2857fa4c6f5fda2945d70b1e84
tree2c575583ebc973f56714d5ab6751b8745972fd6f
parente971b7225bcb1f318811ef04628c441497372999
rps: Inspect GRE encapsulated packets to get flow hash

Crack open GRE packets in __skb_get_rxhash to compute 4-tuple hash on
in encapsulated packet.  Note that this is used only when the
__skb_get_rxhash is taken, in particular only when the device does
not compute provide the rxhash (ie. feature is disabled).

This was tested by creating a single GRE tunnel between two 16 core
AMD machines.  200 netperf TCP_RR streams were ran with 1 byte
request and response size.

Without patch: 157497 tps, 50/90/99% latencies 1250/1292/1364 usecs
With patch: 325896 tps, 50/90/99% latencies 603/848/1169

Signed-off-by: Tom Herbert <therbert@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/core/dev.c