linux/drivers/net/ethernet/intel/ixgbe
Jakub Kicinski 301f227fc8 net: piggy back on the memory barrier in bql when waking queues
Drivers call netdev_tx_completed_queue() right before
netif_txq_maybe_wake(). If BQL is enabled netdev_tx_completed_queue()
should issue a memory barrier, so we can depend on that separating
the stop check from the consumer index update, instead of adding
another barrier in netif_txq_maybe_wake().

This matters more than the barriers on the xmit path, because
the wake condition is almost always true. So we issue the
consumer side barrier often.

Wrap netdev_tx_completed_queue() in a local helper to issue
the barrier even if BQL is disabled. Keep the same semantics
as netdev_tx_completed_queue() (barrier only if bytes != 0)
to make it clear that the barrier is conditional.

Plus since macro gets pkt/byte counts as arguments now -
we can skip waking if there were no packets completed.

Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-04-10 17:56:18 -07:00
..
ixgbe.h ixgbe: Remove unnecessary aer.h include 2023-03-08 23:34:39 -08:00
ixgbe_82598.c
ixgbe_82599.c
ixgbe_common.c ixgbe: Filter out spurious link up indication 2023-01-13 09:42:15 -08:00
ixgbe_common.h
ixgbe_dcb.c
ixgbe_dcb.h
ixgbe_dcb_82598.c
ixgbe_dcb_82598.h
ixgbe_dcb_82599.c
ixgbe_dcb_82599.h
ixgbe_dcb_nl.c
ixgbe_debugfs.c
ixgbe_ethtool.c ixgbe: Remove local variable 2022-11-04 11:09:57 -07:00
ixgbe_fcoe.c net: ethernet: move from strlcpy with unused retval to strscpy 2022-08-31 14:11:26 -07:00
ixgbe_fcoe.h
ixgbe_ipsec.c ixgbe: fill IPsec state validation failure reason 2023-01-26 16:28:48 -08:00
ixgbe_ipsec.h
ixgbe_lib.c net: drop the weight argument from netif_napi_add 2022-09-28 18:57:14 -07:00
ixgbe_main.c net: piggy back on the memory barrier in bql when waking queues 2023-04-10 17:56:18 -07:00
ixgbe_mbx.c
ixgbe_mbx.h
ixgbe_model.h
ixgbe_phy.c ixgbe: Separate C22 and C45 transactions 2023-01-17 19:34:08 -08:00
ixgbe_phy.h
ixgbe_ptp.c ixgbe: Remove unneeded semicolon 2022-11-04 11:09:57 -07:00
ixgbe_sriov.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2022-07-21 13:03:39 -07:00
ixgbe_sriov.h
ixgbe_sysfs.c
ixgbe_txrx_common.h
ixgbe_type.h ixgbe: Manual AN-37 for troublesome link partners for X550 SFI 2022-08-18 14:53:39 -07:00
ixgbe_x540.c
ixgbe_x540.h
ixgbe_x550.c ixgbe: Manual AN-37 for troublesome link partners for X550 SFI 2022-08-18 14:53:39 -07:00
ixgbe_xsk.c
Makefile