vlan: adds vlan_dev_select_queue
authorVasu Dev <vasu.dev@intel.com>
Tue, 23 Mar 2010 14:41:45 +0000 (14:41 +0000)
committerDavid S. Miller <davem@davemloft.net>
Wed, 24 Mar 2010 18:11:38 +0000 (11:11 -0700)
commit669d3e0babb40018dd6e78f4093c13a2eac73866
treeb463681d16ac806ddc889b02623361c64047d281
parent31b24b955c3ebbb6f3008a6374e61cf7c05a193c
vlan: adds vlan_dev_select_queue

This is required to correctly select vlan tx queue for a driver
supporting multi tx queue with ndo_select_queue implemented since
currently selected vlan tx queue is unaligned to selected queue by
real net_devce ndo_select_queue.

Unaligned vlan tx queue selection causes thrash with higher vlan
tx lock contention for least fcoe traffic and wrong socket tx
queue_mapping for ixgbe having ndo_select_queue implemented.

-v2

As per Eric Dumazet<eric.dumazet@gmail.com> comments, mirrored
vlan net_device_ops to have them with and without vlan_dev_select_queue
and then select according to real dev ndo_select_queue present or not
for a vlan net_device. This is to completely skip vlan_dev_select_queue
calling for real net_device not supporting ndo_select_queue.

Signed-off-by: Vasu Dev <vasu.dev@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Acked-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/8021q/vlan_dev.c