1
0
Fork 0
alistair23-linux/drivers/net/ethernet/mellanox/mlx5/core
Tariq Toukan 99cbfa93a6 net/mlx5e: RX, Use cyclic WQ in legacy RQ
Now that LRO is not supported for Legacy RQ, there is no source of
out-of-order completions in the WQ, and we can use a cyclic one.
This has multiple advantages:
- reduces the WQE size (smaller PCI transactions).
- lower overhead in datapath (no handling of 'next' pointers).
- no reserved WQE for the WQ head (was need in linked-list).
- allows using a constant map between frag and dma_info struct, in downstream patch.

Performance tests:
ConnectX-4, single core, single RX ring.
Major gain in packet rate of single ring XDP drop.
Bottleneck is shifted form HW (at 16Mpps) to SW (at 20Mpps).

Signed-off-by: Tariq Toukan <tariqt@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
2018-06-01 16:48:15 -07:00
..
accel net/mlx5: Accel, Add TLS tx offload interface 2018-05-01 09:42:47 -04:00
diag net/mlx5: Add destination e-switch owner 2018-05-17 14:17:34 -07:00
en net/mlx5e: Receive buffer configuration 2018-05-24 14:23:33 -07:00
en_accel net/mlx5e: Avoid reset netdev stats on configuration changes 2018-05-25 16:14:28 -07:00
fpga net/mlx5: FPGA, Handle QP error event 2018-06-01 16:48:14 -07:00
ipoib net/mlx5i: Use compilation flag in IPOIB header 2018-05-25 14:11:00 -07:00
lib net/mlx5e: Eliminate build warnings on no previous prototype 2018-02-20 12:52:56 -08:00
Kconfig net/mlx5e: fix TLS dependency 2018-05-29 10:03:40 -04:00
Makefile net/mlx5e: Receive buffer configuration 2018-05-24 14:23:33 -07:00
alloc.c IB/mlx5: Implement fragmented completion queue (CQ) 2018-02-15 00:30:03 -08:00
cmd.c net/mlx5: Fix dump_command mailbox length printed 2018-05-04 12:11:51 -07:00
cq.c net/mlx5: Fix wrongly assigned CQ reference counter 2018-03-07 15:54:36 -08:00
debugfs.c
dev.c net/mlx5: E-Switch, Reload IB interface when switching devlink modes 2018-02-23 12:36:39 -08:00
en.h net/mlx5e: RX, Use cyclic WQ in legacy RQ 2018-06-01 16:48:15 -07:00
en_arfs.c net/mlx5e: Increase aRFS flow tables size 2018-06-01 16:48:14 -07:00
en_common.c net/mlx5: Mkey creation command adjustments 2018-04-05 13:04:49 -06:00
en_dcbnl.c net/mlx5e: Receive buffer support for DCBX 2018-05-24 14:23:33 -07:00
en_dim.c net/mlx5e: Enable adaptive-TX moderation 2018-04-24 10:15:08 -04:00
en_ethtool.c net/mlx5e: RX, Remove HW LRO support in legacy RQ 2018-06-01 16:48:15 -07:00
en_fs.c net/mlx5e: Remove redundant vport context vlan update 2018-05-14 15:10:22 -07:00
en_fs_ethtool.c net/mlx5: Fix mlx5_add_flow_rules call with correct num of dests 2017-07-27 16:40:17 +03:00
en_main.c net/mlx5e: RX, Use cyclic WQ in legacy RQ 2018-06-01 16:48:15 -07:00
en_rep.c net/mlx5e: RX, Use cyclic WQ in legacy RQ 2018-06-01 16:48:15 -07:00
en_rep.h net/mlx5e: Use shared table for offloaded TC eswitch flows 2018-05-17 17:48:54 -07:00
en_rx.c net/mlx5e: RX, Use cyclic WQ in legacy RQ 2018-06-01 16:48:15 -07:00
en_selftest.c net/mlx5e: RX, Generalise name of non-linear SKB head size 2018-06-01 16:48:14 -07:00
en_stats.c net/mlx5e: Remove redundant active_channels indication 2018-06-01 16:48:14 -07:00
en_stats.h net/mlx5e: Introducing new statistics rwlock 2018-05-25 14:11:01 -07:00
en_tc.c net/mlx5e: Get the number of offloaded TC rules from the correct table 2018-05-29 17:27:50 -07:00
en_tc.h net/mlx5e: Get the number of offloaded TC rules from the correct table 2018-05-29 17:27:50 -07:00
en_tx.c net/mlx5e: TX, Obsolete maintaining local copies of skb->len/data 2018-06-01 16:48:14 -07:00
en_txrx.c net/mlx5e: Avoid reset netdev stats on configuration changes 2018-05-25 16:14:28 -07:00
eq.c net/mlx5: Add FPGA QP error event 2018-05-31 15:35:38 -04:00
eswitch.c net/mlx5: E-Switch, Reorganize and rename fdb flow tables 2018-05-25 14:11:00 -07:00
eswitch.h net/mlx5e: Split offloaded eswitch TC rules for port mirroring 2018-05-25 14:11:00 -07:00
eswitch_offloads.c net/mlx5e: Split offloaded eswitch TC rules for port mirroring 2018-05-25 14:11:00 -07:00
fs_cmd.c net/mlx5: Add destination e-switch owner 2018-05-17 14:17:34 -07:00
fs_cmd.h net/mlx5: Flow steering cmd interface should get the fte when deleting 2018-03-06 22:20:15 -08:00
fs_core.c net/mlx5: E-switch, Create a second level FDB flow table 2018-05-25 14:11:00 -07:00
fs_core.h net/mlx5: Embed mlx5_flow_act into fs_fte 2018-03-06 22:20:13 -08:00
fs_counters.c net/mlx5e: E-switch, Add steering drop counters 2018-01-09 07:40:48 +02:00
fw.c Merge candidates for 4.17 merge window 2018-04-06 17:35:43 -07:00
health.c {net, IB}/mlx5: Raise fatal IB event when sys error occurs 2018-02-28 12:10:32 -07:00
lag.c IB/mlx5: Fix congestion counters in LAG mode 2017-12-21 16:06:07 -07:00
mad.c
main.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-05-11 20:53:22 -04:00
mcg.c
mlx5_core.h net/mlx5: Free IRQs in shutdown path 2018-05-10 16:10:03 -07:00
mr.c net/mlx5: Decrease level of prints about non-existent MKEY 2018-05-04 12:11:51 -07:00
pagealloc.c
pd.c
port.c net/mlx5e: PFC stall prevention support 2018-03-26 13:46:46 -07:00
qp.c net/mlx5: remove some extraneous spaces in indentations 2018-04-16 12:24:08 -07:00
rl.c net/mlx5: Packet pacing enhancement 2018-03-19 11:54:41 -06:00
sriov.c net/mlx5: Fix wrong indentation in enable SRIOV code 2017-09-28 07:23:10 +03:00
srq.c Updates for 4.14 kernel merge window 2017-09-03 17:49:17 -07:00
transobj.c net/mlx5: Eliminate query xsrq dead code 2018-03-30 16:16:17 -07:00
uar.c net/mlx5: Fix mlx5_get_uars_page to return error code 2018-01-12 02:01:47 +02:00
vport.c net/mlx5: Vport, Use 'kvfree()' for memory allocated by 'kvzalloc()' 2018-05-16 17:48:17 -07:00
vxlan.c net/mlx5e: Prevent possible races in VXLAN control flow 2017-12-19 23:24:03 +02:00
vxlan.h net/mlx5e: Add refcount to VXLAN structure 2017-12-19 23:24:03 +02:00
wq.c net/mlx5e: RX, Use cyclic WQ in legacy RQ 2018-06-01 16:48:15 -07:00
wq.h net/mlx5e: RX, Use cyclic WQ in legacy RQ 2018-06-01 16:48:15 -07:00