alistair23-linux/drivers/net
Saeed Mahameed 1bfecfca56 net/mlx5e: Build RX SKB on demand
For non-striding RQ configuration before this patch we had a ring
with pre-allocated SKBs and mapped the SKB->data buffers for
device.

For robustness and better RX data buffers management, we allocate a
page per packet and build_skb around it.

This patch (which is a prerequisite for XDP) will actually reduce
performance for normal stack usage, because we are now hitting a bottleneck
in the page allocator. We use the page-cache to restore or even improve
performance in comparison to the old RX scheme.

Packet rate performance testing was done with pktgen 64B packets on xmit
side and TC ingress dropping action on RX side.

CPU: Intel(R) Xeon(R) CPU E5-2680 v3 @ 2.50GHz

Comparison is done between:
 1.Baseline, before 'net/mlx5e: Build RX SKB on demand'
 2.Build SKB with RX page cache (This patch)

RX Cores  Baseline    Build SKB+page-cache    Improvement
-----------------------------------------------------------
1          4.16Mpps       5.33Mpps                28%
2          7.16Mpps      10.24Mpps                43%
4         13.61Mpps      20.51Mpps                51%
8         25.32Mpps      32.00Mpps                26%

All respective cores were 100% utilized.

Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
Signed-off-by: Tariq Toukan <tariqt@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2016-09-22 02:51:40 -04:00
..
appletalk
arcnet
bonding Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-09-12 15:52:44 -07:00
caif
can
cris
dsa net: dsa: mv88e6xxx: Convert flag bits to unsigned long long 2016-09-22 02:20:12 -04:00
ethernet net/mlx5e: Build RX SKB on demand 2016-09-22 02:51:40 -04:00
fddi
fjes
hamradio 6pack: fix buffer length mishandling 2016-09-20 22:51:30 -04:00
hippi
hyperv Revert "hv_netvsc: make inline functions static" 2016-09-10 21:23:00 -07:00
ieee802154 fakelb: fix schedule while atomic 2016-09-19 20:19:34 +02:00
ipvlan ipvlan: Introduce l3s mode 2016-09-19 01:25:22 -04:00
irda
phy net: phy: Add MAC-IF driver for Microsemi PHYs. 2016-09-20 04:39:23 -04:00
plip
ppp ppp: declare PPP devices as LLTX 2016-08-31 14:33:09 -07:00
slip
team
usb kaweth: remove obsolete debugging statements 2016-09-07 17:45:31 -07:00
vmxnet3
wan net: wan: sbni: Spelling s/acknoweledge/acknowledge/, Grammar 2016-08-31 09:26:30 -07:00
wimax
wireless This time we have various things - all across the board: 2016-09-18 22:29:08 -04:00
xen-netback
dummy.c
eql.c
geneve.c
gtp.c
ifb.c
Kconfig ipvlan: Fix dependency issue 2016-09-20 22:55:23 -04:00
LICENSE.SRC
loopback.c
macsec.c macsec: set network devtype 2016-09-09 16:52:43 -07:00
macvlan.c
macvtap.c
Makefile
mdio.c
mii.c
netconsole.c
nlmon.c
ntb_netdev.c
rionet.c
sb1000.c
Space.c
sungem_phy.c
tun.c
veth.c net: veth: Set features for MPLS 2016-08-30 22:27:18 -07:00
virtio_net.c
vrf.c net: vrf: Remove RT_FL_TOS 2016-09-17 10:05:05 -04:00
vxlan.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-09-12 15:52:44 -07:00
xen-netfront.c xen-netfront: avoid packet loss when ethernet header crosses page boundary 2016-09-20 04:40:41 -04:00