xps: Improvements in TX queue selection
authorTom Herbert <therbert@google.com>
Sun, 21 Nov 2010 13:17:29 +0000 (13:17 +0000)
committerDavid S. Miller <davem@davemloft.net>
Wed, 24 Nov 2010 19:44:19 +0000 (11:44 -0800)
commit3853b5841c01a3f492fe137afaad9c209e5162c6
tree6781db9ec592d9798129cd4715ce00dc9007b78c
parent22f4fbd9bd283ef85126e511171932a4af703776
xps: Improvements in TX queue selection

In dev_pick_tx, don't do work in calculating queue
index or setting
the index in the sock unless the device has more than one queue.  This
allows the sock to be set only with a queue index of a multi-queue
device which is desirable if device are stacked like in a tunnel.

We also allow the mapping of a socket to queue to be changed.  To
maintain in order packet transmission a flag (ooo_okay) has been
added to the sk_buff structure.  If a transport layer sets this flag
on a packet, the transmit queue can be changed for the socket.
Presumably, the transport would set this if there was no possbility
of creating OOO packets (for instance, there are no packets in flight
for the socket).  This patch includes the modification in TCP output
for setting this flag.

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