linux/drivers/net/ethernet/mellanox/mlx5/core
Eli Cohen 0ca00fc1f8 net/mlx5e: Fix blue flame quota logic
Blue flame is a latency enhancement feature that allows the driver to
write the packet data directly to the NIC's registers thus making the
read of the packet data from host memory redundant.

We maintain a quota for the blue flame which is reloaded whenever we
identify that the hardware is processing send requests and processes
them fast enough so by the time we post the next send request it was
able to process all the pending ones. This indicates that the hardware
is capable of processing more blue flame requests efficiently. The blue
flame quota is decremented whenever we send using blue flame.

The current code erroneously clears the budget if we did not use blue
flame for the current post send operation and we fix it here.

Fixes: 88a85f99e5 ('net/mlx5e: TX latency optimization to save DMA reads')
Signed-off-by: Eli Cohen <eli@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2016-06-09 22:06:27 -07:00
..
alloc.c net/mlx5e: Allocate DMA coherent memory on reader NUMA node 2015-07-27 00:29:17 -07:00
cmd.c net/mlx5_core: Firmware commands to support flow counters 2016-05-16 13:43:51 -04:00
cq.c net/mlx5_core: Use tasklet for user-space CQ completion events 2016-05-18 10:45:49 -04:00
debugfs.c
en_arfs.c net/mlx5e: Fix aRFS compilation dependency 2016-05-04 14:04:46 -04:00
en_clock.c net/mlx5e: CQE compression 2016-05-11 19:42:39 -04:00
en_dcbnl.c net/mlx5e: Add per priority group to PPort counters 2016-04-26 15:58:01 -04:00
en_ethtool.c net/mlx5e: Enable CQE compression when PCI is slower than link 2016-05-11 19:42:39 -04:00
en_fs.c net/mlx5e: Create aRFS flow tables 2016-04-29 16:29:11 -04:00
en_main.c net/mlx5e: Use ndo_stop explicitly at shutdown flow 2016-06-09 22:06:27 -07:00
en_rx.c mm: rename _count, field of the struct page, to _refcount 2016-05-19 19:12:14 -07:00
en_stats.h net/mlx5e: CQE compression 2016-05-11 19:42:39 -04:00
en_tc.c net/mlx5e: Hardware offloaded flower filter statistics support 2016-05-16 13:43:51 -04:00
en_tc.h net/mlx5e: Hardware offloaded flower filter statistics support 2016-05-16 13:43:51 -04:00
en_tx.c net/mlx5e: Fix blue flame quota logic 2016-06-09 22:06:27 -07:00
en_txrx.c net/mlx5e: Remove redundant barrier 2016-04-21 15:09:05 -04:00
en.h net/mlx5e: Enable CQE compression when PCI is slower than link 2016-05-11 19:42:39 -04:00
eq.c net/mlx5_core: Use tasklet for user-space CQ completion events 2016-05-18 10:45:49 -04:00
eswitch.c net/mlx5: E-Switch, always set mc_promisc for allmulti vports 2016-06-09 22:06:26 -07:00
eswitch.h net/mlx5: E-Switch, Implement trust vf ndo 2016-05-04 14:04:49 -04:00
fs_cmd.c net/mlx5_core: Introduce flow steering destination of type counter 2016-05-16 13:43:51 -04:00
fs_cmd.h net/mlx5_core: Introduce flow steering destination of type counter 2016-05-16 13:43:51 -04:00
fs_core.c net/mlx5: Fix E-Switch flow steering capabilities check 2016-06-09 22:06:26 -07:00
fs_core.h net/mlx5_core: Flow counters infrastructure 2016-05-16 13:43:51 -04:00
fs_counters.c net/mlx5_core: Flow counters infrastructure 2016-05-16 13:43:51 -04:00
fw.c net/mlx5_core: Introduce offload arithmetic hardware capabilities 2016-03-21 16:32:35 -04:00
health.c treewide: Fix typos in printk 2016-04-28 10:52:28 +02:00
Kconfig mlx5: Fix merge errors. 2016-05-09 22:05:13 -04:00
mad.c
main.c Primary 4.7 merge window changes 2016-05-20 14:35:07 -07:00
Makefile net/mlx5_core: Flow counters infrastructure 2016-05-16 13:43:51 -04:00
mcg.c
mlx5_core.h Primary 4.7 merge window changes 2016-05-20 14:35:07 -07:00
mr.c net/mlx5: Refactor mlx5_core_mr to mkey 2016-03-01 11:18:37 -05:00
pagealloc.c net/mlx5_core: Add base sriov support 2015-12-03 12:08:43 -05:00
pd.c
port.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-04-27 15:43:10 -04:00
qp.c net/mlx5: Fix masking of reserved bits in XRCD number 2016-06-09 22:06:25 -07:00
sriov.c treewide: Fix typos in printk 2016-04-18 11:23:24 +02:00
srq.c net/mlx5_core: Export transport objects 2016-01-21 12:01:08 -05:00
transobj.c IB/mlx5: Support setting Ethernet priority for Raw Packet QPs 2016-01-21 12:01:09 -05:00
uar.c net/mlx5: Unmap only the relevant IO memory mapping 2016-05-03 13:37:25 -04:00
vport.c net/mlx5: E-Switch, Modify node guid on vf set MAC 2016-06-09 22:06:26 -07:00
vxlan.c net/mlx5e: Use workqueue for vxlan ops 2016-05-03 13:37:26 -04:00
vxlan.h mlx5: Fix merge errors. 2016-05-09 22:05:13 -04:00
wq.c net/mlx5e: Allocate DMA coherent memory on reader NUMA node 2015-07-27 00:29:17 -07:00
wq.h net/mlx5e: Allocate DMA coherent memory on reader NUMA node 2015-07-27 00:29:17 -07:00