linux-stable/include/linux/mlx5
Tariq Toukan 5e0d2eef77 net/mlx5e: XDP, Support Enhanced Multi-Packet TX WQE
Add support for the HW feature of multi-packet WQE in XDP
xmit flow.

The conventional TX descriptor (WQE, Work Queue Element) serves
a single packet. Our HW has support for multi-packet WQE (MPWQE)
in which a single descriptor serves multiple TX packets.

This reduces both the PCI overhead and the CPU cycles wasted on
writing them.

In this patch we add support for the HW feature, which is supported
starting from ConnectX-5.

Performance:
Tested packet rate for UDP 64Byte multi-stream over ConnectX-5 NICs.
CPU: Intel(R) Xeon(R) CPU E5-2680 v3 @ 2.50GHz

XDP_TX:
We see a huge gain on single port ConnectX-5, and reach the 100 Mpps
milestone.
* Single-port HCA:
	Before:   70 Mpps
	After:   100 Mpps (+42.8%)

* Dual-port HCA:
	Before: 51.7 Mpps
	After:  57.3 Mpps (+10.8%)

* In both cases we tested traffic on one port and for now On Dual-port HCAs
  we see only small gain, we are working to overcome this bottleneck, but
  for the moment only with experimental firmware on dual port HCAs we can
  reach the wanted numbers as seen on Single-port HCAs.

XDP_REDIRECT:
Redirect from (A) ConnectX-5 to (B) ConnectX-5.
Due to a setup limitation, (A) and (B) are on different NUMA nodes,
so absolute performance numbers are not optimal.
Note:
  Below is the transmit rate of (B), not the redirect rate of (A)
  which is in some cases higher.

* (B) is single-port:
	Before:   77 Mpps
	After:    90 Mpps (+16.8%)

* (B) is dual-port:
	Before:  61 Mpps
	After:   72 Mpps (+18%)

Signed-off-by: Tariq Toukan <tariqt@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
2018-12-20 22:54:19 -08:00
..
accel.h net/mlx5: IPSec, Add support for ESN 2018-03-07 15:54:36 -08:00
cmd.h
cq.h net/mlx5e: Use CQE padding for Ethernet CQs 2018-12-11 14:52:20 -08:00
device.h net/mlx5e: XDP, Support Enhanced Multi-Packet TX WQE 2018-12-20 22:54:19 -08:00
doorbell.h
driver.h net/mlx5: Make RoCE and SR-IOV LAG modes explicit 2018-12-14 13:28:55 -08:00
eq.h net/mlx5: EQ, Introduce atomic notifier chain subscription API 2018-11-26 13:39:33 -08:00
eswitch.h net/mlx5: E-Switch, Avoid setup attempt if not being e-switch manager 2018-06-26 15:26:29 -07:00
fs.h net/mlx5: Support extended destination format in flow steering command 2018-12-10 14:00:08 -08:00
fs_helpers.h {net,IB}/mlx5: Add ipsec helper 2018-04-04 12:06:27 -06:00
mlx5_ifc.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-12-20 11:53:36 -08:00
mlx5_ifc_fpga.h net/mlx5: Accel, add TLS rx offload routines 2018-07-16 00:13:11 -07:00
port.h net/mlx5: Device events, Use async events chain 2018-11-26 13:39:34 -08:00
qp.h net/mlx5: Add interface to hold and release core resources 2018-11-12 22:20:29 +02:00
transobj.h net/mlx5: Move SRQ functions to RDMA part 2018-12-04 09:14:30 +02:00
vport.h net/mlx5: Cache the system image guid 2018-10-01 11:32:47 -07:00