linux_dsm_epyc7002/drivers/net
Maxim Mikityanskiy a7bd4018d6 net/mlx5e: Add AF_XDP need_wakeup support
This commit adds support for the new need_wakeup feature of AF_XDP. The
applications can opt-in by using the XDP_USE_NEED_WAKEUP bind() flag.
When this feature is enabled, some behavior changes:

RX side: If the Fill Ring is empty, instead of busy-polling, set the
flag to tell the application to kick the driver when it refills the Fill
Ring.

TX side: If there are pending completions or packets queued for
transmission, set the flag to tell the application that it can skip the
sendto() syscall and save time.

The performance testing was performed on a machine with the following
configuration:

- 24 cores of Intel Xeon E5-2620 v3 @ 2.40 GHz
- Mellanox ConnectX-5 Ex with 100 Gbit/s link

The results with retpoline disabled:

       | without need_wakeup  | with need_wakeup     |
       |----------------------|----------------------|
       | one core | two cores | one core | two cores |
-------|----------|-----------|----------|-----------|
txonly | 20.1     | 33.5      | 29.0     | 34.2      |
rxdrop | 0.065    | 14.1      | 12.0     | 14.1      |
l2fwd  | 0.032    | 7.3       | 6.6      | 7.2       |

"One core" means the application and NAPI run on the same core. "Two
cores" means they are pinned to different cores.

Signed-off-by: Maxim Mikityanskiy <maximmi@mellanox.com>
Reviewed-by: Tariq Toukan <tariqt@mellanox.com>
Reviewed-by: Saeed Mahameed <saeedm@mellanox.com>
Acked-by: Jonathan Lemon <jonathan.lemon@gmail.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
2019-08-17 23:07:32 +02:00
..
appletalk
arcnet arcnet: com20020-isa: Mark expected switch fall-throughs 2019-07-29 10:23:59 -07:00
bonding bonding: no need to print a message if debugfs_create_dir() fails 2019-08-10 15:25:47 -07:00
caif caif: no need to check return value of debugfs_create functions 2019-08-11 21:31:25 -07:00
can Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2019-08-06 18:44:57 -07:00
dsa net: dsa: mv88e6xxx: add delay in direct SMI wait 2019-08-11 21:27:15 -07:00
ethernet net/mlx5e: Add AF_XDP need_wakeup support 2019-08-17 23:07:32 +02:00
fddi
fjes
hamradio mkiss: Use refcount_t for refcount 2019-08-08 17:58:40 -07:00
hippi
hyperv net: Use skb_frag_off accessors 2019-07-30 14:21:32 -07:00
ieee802154 ieee802154: no need to check return value of debugfs_create functions 2019-08-10 15:25:48 -07:00
ipvlan
netdevsim netdevsim: register couple of devlink params 2019-08-11 21:20:25 -07:00
phy net: phy: let phy_speed_down/up support speeds >1Gbps 2019-08-13 17:14:06 -07:00
plip
ppp compat_ioctl: pppoe: fix PPPOEIOCSFWD handling 2019-07-30 14:42:13 -07:00
slip net: delete "register" keyword 2019-08-08 18:03:42 -07:00
team
usb r8152: change rx_copybreak and rx_pending through ethtool 2019-08-13 18:12:09 -07:00
vmxnet3 net: Use skb_frag_off accessors 2019-07-30 14:21:32 -07:00
wan net: wan: sdla: Mark expected switch fall-through 2019-07-29 13:57:58 -07:00
wimax wimax: no need to check return value of debugfs_create functions 2019-08-10 15:25:47 -07:00
wireless Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2019-08-06 18:44:57 -07:00
xen-netback xen-netback: no need to check return value of debugfs_create functions 2019-08-11 21:30:06 -07:00
dummy.c
eql.c
geneve.c
gtp.c
ifb.c
Kconfig
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 net: Use skb_frag_off accessors 2019-07-30 14:21:32 -07:00
tun.c tun: mark small packets as owned by the tap sock 2019-07-25 11:38:32 -07:00
veth.c
virtio_net.c
vrf.c vrf: make sure skb->data contains ip header to make routing 2019-07-21 13:32:51 -07:00
vsockmon.c
vxlan.c
xen-netfront.c net: Use skb_frag_off accessors 2019-07-30 14:21:32 -07:00