net: Fix skb_tx_hash() for forwarding workloads.
authorEric Dumazet <dada1@cosmosbay.com>
Fri, 1 May 2009 16:05:06 +0000 (09:05 -0700)
committerDavid S. Miller <davem@davemloft.net>
Fri, 1 May 2009 16:05:06 +0000 (09:05 -0700)
commitec581f6a42bbbea5271c66da9769a41b46c74e10
tree608636f6519789f3504fd4d0077568cc25d89b5a
parent7a67e56fd362d3edfde1f19170893508c3940d3a
net: Fix skb_tx_hash() for forwarding workloads.

When skb_rx_queue_recorded() is true, we dont want to use jash distribution
as the device driver exactly told us which queue was selected at RX time.
jhash makes a statistical shuffle, but this wont work with 8 static inputs.

Later improvements would be to compute reciprocal value of real_num_tx_queues
to avoid a divide here. But this computation should be done once,
when real_num_tx_queues is set. This needs a separate patch, and a new
field in struct net_device.

Reported-by: Andrew Dickinson <andrew@whydna.net>
Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/core/dev.c