linux/drivers/net
Magnus Karlsson 528060ef3e i40e: fix receiving of single packets in xsk zero-copy mode
Fix so that single packets are received immediately instead of in
batches of 8. If you sent 1 pps to a system, you received 8 packets
every 8 seconds instead of 1 packet every second. The problem behind
this was that the work_done reporting from the Tx part of the driver
was broken. The work_done reporting in i40e controls not only the
reporting back to the napi logic but also the setting of the interrupt
throttling logic. When Tx or Rx reports that it has more to do,
interrupts are throttled or coalesced and when they both report that
they are done, interrupts are armed right away. If the wrong work_done
value is returned, the logic will start to throttle interrupts in a
situation where it should have just enabled them. This leads to the
undesired batching behavior seen in user-space.

Fix this by returning the correct boolean value from the Tx xsk
zero-copy path. Return true if there is nothing to do or if we got
fewer packets to process than we asked for. Return false if we got as
many packets as the budget since there might be more packets we can
process.

Fixes: 3106c580fb ("i40e: Use batched xsk Tx interfaces to increase performance")
Reported-by: Sreedevi Joshi <sreedevi.joshi@intel.com>
Signed-off-by: Magnus Karlsson <magnus.karlsson@intel.com>
Acked-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Tested-by: Kiran Bhandare <kiranx.bhandare@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
2021-04-01 09:27:38 -07:00
..
appletalk
arcnet net: arcnet: com20020 fix error handling 2021-03-14 14:17:48 -07:00
bonding Revert "net: bonding: fix error return code of bond_neigh_init()" 2021-03-12 12:15:03 -08:00
caif TTY/Serial driver changes for 5.12-rc1 2021-02-20 21:28:04 -08:00
can Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2021-03-24 18:16:04 -07:00
dsa net: dsa: lantiq_gswip: Let GSWIP automatically set the xMII clock 2021-03-25 16:53:38 -07:00
ethernet i40e: fix receiving of single packets in xsk zero-copy mode 2021-04-01 09:27:38 -07:00
fddi
fjes
hamradio module: remove never implemented MODULE_SUPPORTED_DEVICE 2021-03-17 13:16:18 -07:00
hippi
hyperv hv_netvsc: Fix validation in netvsc_linkstatus_callback() 2021-03-01 15:30:52 -08:00
ieee802154
ipa net: ipa: fix init header command validation 2021-03-20 18:53:41 -07:00
ipvlan
mdio net: mdio: Remove of_phy_attach() 2021-02-17 13:17:49 -08:00
mhi
netdevsim netdevsim: init u64 stats for 32bit hardware 2021-03-04 14:36:26 -08:00
pcs
phy net: phy: broadcom: Only advertise EEE for supported modes 2021-03-30 17:39:23 -07:00
plip
ppp TTY/Serial driver changes for 5.12-rc1 2021-02-20 21:28:04 -08:00
slip
team
usb r8152: limit the RX buffer size of RTL8153A for USB 2.0 2021-03-19 11:55:09 -07:00
vmxnet3
wan drivers/net/wan/hdlc_fr: Fix a double free in pvc_xmit 2021-03-28 18:08:43 -07:00
wireguard wireguard: queueing: get rid of per-peer ring buffers 2021-02-23 15:59:34 -08:00
wireless module: remove never implemented MODULE_SUPPORTED_DEVICE 2021-03-17 13:16:18 -07:00
xen-netback Merge git://git.kernel.org:/pub/scm/linux/kernel/git/netdev/net 2021-03-09 17:15:56 -08:00
bareudp.c
dummy.c
eql.c
geneve.c geneve: do not modify the shared tunnel info when PMTU triggers an ICMP reply 2021-03-25 17:27:30 -07:00
gtp.c net: icmp: pass zeroed opts from icmp{,v6}_ndo_send before sending 2021-02-23 11:29:52 -08:00
ifb.c
Kconfig crypto: mips/poly1305 - enable for all MIPS processors 2021-03-08 11:52:17 +01:00
LICENSE.SRC
loopback.c
macsec.c
macvlan.c
macvtap.c
Makefile
mdio.c
mii.c
net_failover.c
netconsole.c
nlmon.c
ntb_netdev.c
rionet.c
sb1000.c
Space.c
sungem_phy.c
tap.c
thunderbolt.c
tun.c
veth.c veth: Store queue_mapping independently of XDP prog presence 2021-03-06 00:04:52 +01:00
virtio_net.c virtio: features, fixes 2021-02-25 12:21:08 -08:00
vrf.c
vsockmon.c
vxlan.c vxlan: do not modify the shared tunnel info when PMTU triggers an ICMP reply 2021-03-25 17:27:30 -07:00
xen-netfront.c