net: remove 'fallback' argument from dev->ndo_select_queue()
authorPaolo Abeni <pabeni@redhat.com>
Wed, 20 Mar 2019 10:02:06 +0000 (11:02 +0100)
committerDavid S. Miller <davem@davemloft.net>
Wed, 20 Mar 2019 18:18:55 +0000 (11:18 -0700)
commita350eccee5830d9a1f29e393a88dc05a15326d44
tree606fd11e76d457dbcfcb197f573808cb625bee3f
parentb71b5837f8711dbc4bc0424cb5c75e5921be055c
net: remove 'fallback' argument from dev->ndo_select_queue()

After the previous patch, all the callers of ndo_select_queue()
provide as a 'fallback' argument netdev_pick_tx.
The only exceptions are nested calls to ndo_select_queue(),
which pass down the 'fallback' available in the current scope
- still netdev_pick_tx.

We can drop such argument and replace fallback() invocation with
netdev_pick_tx(). This avoids an indirect call per xmit packet
in some scenarios (TCP syn, UDP unconnected, XDP generic, pktgen)
with device drivers implementing such ndo. It also clean the code
a bit.

Tested with ixgbe and CONFIG_FCOE=m

With pktgen using queue xmit:
threads vanilla  patched
(kpps) (kpps)
1 2334 2428
2 4166 4278
4 7895 8100

 v1 -> v2:
 - rebased after helper's name change

Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
32 files changed:
drivers/infiniband/hw/hfi1/vnic_main.c
drivers/infiniband/ulp/opa_vnic/opa_vnic_netdev.c
drivers/net/bonding/bond_main.c
drivers/net/ethernet/amazon/ena/ena_netdev.c
drivers/net/ethernet/broadcom/bcmsysport.c
drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h
drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
drivers/net/ethernet/hisilicon/hns/hns_enet.c
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
drivers/net/ethernet/mellanox/mlx4/en_tx.c
drivers/net/ethernet/mellanox/mlx4/mlx4_en.h
drivers/net/ethernet/mellanox/mlx5/core/en.h
drivers/net/ethernet/mellanox/mlx5/core/en_tx.c
drivers/net/ethernet/qlogic/qede/qede.h
drivers/net/ethernet/qlogic/qede/qede_fp.c
drivers/net/ethernet/renesas/ravb_main.c
drivers/net/ethernet/sun/ldmvsw.c
drivers/net/ethernet/sun/sunvnet.c
drivers/net/hyperv/netvsc_drv.c
drivers/net/net_failover.c
drivers/net/team/team.c
drivers/net/tun.c
drivers/net/wireless/marvell/mwifiex/main.c
drivers/net/xen-netback/interface.c
drivers/net/xen-netfront.c
drivers/staging/rtl8188eu/os_dep/os_intfs.c
drivers/staging/rtl8723bs/os_dep/os_intfs.c
include/linux/netdevice.h
net/core/dev.c
net/mac80211/iface.c
net/packet/af_packet.c