linux/drivers/net/ethernet/netronome/nfp
Jakub Kicinski d38df0d364 nfp: avoid reading TX queue indexes from the device
Reading TX queue indexes from the device memory on each interrupt
is expensive.  It's doubly expensive with XDP running since we have
two TX rings to check there.  If the software indexes indicate that
the TX queue is completely empty, however, we don't need to look at
the device completion index at all.

The queuing CPU is doing a wmb() before kicking the device TX so
we should be safe to assume on the CPU handling the completions will
never see old value of the software copy of the index.

Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-04-30 22:37:00 -04:00
..
nfpcore nfp: add NSP routine to get static information 2017-04-24 14:35:44 -04:00
Makefile nfp: add NSP routine to get static information 2017-04-24 14:35:44 -04:00
nfp_asm.h nfp: add BPF to NFP code translator 2016-09-21 19:50:02 -04:00
nfp_bpf_jit.c nfp: replace -ENOTSUPP with -EOPNOTSUPP 2017-04-30 22:37:00 -04:00
nfp_bpf_verifier.c nfp: add support for offload of XDP programs 2016-11-04 14:56:16 -04:00
nfp_bpf.h bitfield.h: add FIELD_FIT() helper 2017-02-10 15:52:24 -05:00
nfp_main.c nfp: add NSP routine to get static information 2017-04-24 14:35:44 -04:00
nfp_main.h nfp: add port state refresh 2017-04-05 10:49:12 -07:00
nfp_net_common.c nfp: avoid reading TX queue indexes from the device 2017-04-30 22:37:00 -04:00
nfp_net_ctrl.h nfp: add support for .get_link_ksettings() 2017-04-05 10:49:12 -07:00
nfp_net_debugfs.c nfp: remove RX queue pointers 2017-03-22 12:59:09 -07:00
nfp_net_ethtool.c nfp: replace -ENOTSUPP with -EOPNOTSUPP 2017-04-30 22:37:00 -04:00
nfp_net_main.c nfp: remove the refresh of all ports optimization 2017-04-24 14:35:44 -04:00
nfp_net_offload.c nfp: replace -ENOTSUPP with -EOPNOTSUPP 2017-04-30 22:37:00 -04:00
nfp_net.h nfp: do simple XDP TX buffer recycling 2017-04-30 22:37:00 -04:00
nfp_netvf_main.c nfp: move control BAR pointer into data path structure 2017-03-12 23:43:17 -07:00