linux/drivers/net/ethernet/mellanox/mlx5/core
Aya Levin 17347d5430 net/mlx5e: Add support for PCI relaxed ordering
The concept of Relaxed Ordering in the PCI Express environment allows
switches in the path between the Requester and Completer to reorder some
transactions just received before others that were previously enqueued.

In ETH driver, there is no question of write integrity since each memory
segment is written only once per cycle. In addition, the driver doesn't
access the memory shared with the hardware until the corresponding CQE
arrives indicating all PCI transactions are done.

Running TCP single stream over ConnectX-4 LX, ARM CPU on remote-numa has
300% improvement in the bandwidth.

With relaxed ordering turned off: BW:10 [GB/s]
With relaxed ordering turned on: BW:40 [GB/s]

The driver turns relaxed ordering with respect to the firmware
capabilities and the return value from pcie_relaxed_ordering_enabled().

Signed-off-by: Aya Levin <ayal@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
2020-07-28 02:37:49 -07:00
..
accel net/mlx5e: IPsec: Add Connect-X IPsec ESN update offload support 2020-07-16 16:36:51 -07:00
diag Merge branch 'mlx5-next' of git://git.kernel.org/pub/scm/linux/kernel/git/mellanox/linux 2020-06-27 14:00:13 -07:00
en net/mlx5e: Use indirect call wrappers for RX post WQEs functions 2020-07-28 02:37:47 -07:00
en_accel net/mlx5e: RX, Re-work initializaiton of RX function pointers 2020-07-28 02:37:41 -07:00
esw net/mlx5: E-Switch, Fix vlan or qos setting in legacy mode 2020-07-09 19:27:05 -07:00
fpga net/mlx5: Accel, Add core IPsec support for the Connect-X family 2020-07-16 16:36:42 -07:00
ipoib net/mlx5e: RX, Re-work initializaiton of RX function pointers 2020-07-28 02:37:41 -07:00
lib net/mlx5: IPsec: Add HW crypto offload support 2020-07-16 16:36:44 -07:00
steering net/mlx5: DR, Fix freeing in dr_create_rc_qp() 2020-06-11 15:37:53 -07:00
alloc.c
cmd.c net/mlx5: cmd: Fix memset with byte count warning 2020-05-29 21:20:21 -07:00
cq.c net/mlx5: Update cq.c to new cmd interface 2020-04-23 21:42:03 +03:00
debugfs.c net/mlx5: cmd: Fix memset with byte count warning 2020-05-29 21:20:21 -07:00
dev.c net/mlx5: Simplify mlx5_register_device to return void 2020-03-25 23:19:13 -07:00
devlink.c net/mlx5: E-switch, Supporting setting devlink port function mac address 2020-06-22 15:29:19 -07:00
devlink.h
ecpf.c net/mlx5: Update ecpf.c to new cmd interface 2020-04-23 21:42:04 +03:00
ecpf.h
en_arfs.c net/mlx5e: API to manipulate TTC rules destinations 2020-06-27 14:00:18 -07:00
en_common.c net/mlx5e: Add support for PCI relaxed ordering 2020-07-28 02:37:49 -07:00
en_dcbnl.c net/mlx5e: Fix port buffers cell size value 2020-07-09 19:27:07 -07:00
en_dim.c
en_ethtool.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-07-11 00:46:00 -07:00
en_fs_ethtool.c net/mlx5: Update transobj.c new cmd interface 2020-04-23 21:42:16 +03:00
en_fs.c net/mlx5e: API to manipulate TTC rules destinations 2020-06-27 14:00:18 -07:00
en_main.c net/mlx5e: Add support for PCI relaxed ordering 2020-07-28 02:37:49 -07:00
en_rep.c net/mlx5e: Move exposure of datapath function to txrx header 2020-07-28 02:37:44 -07:00
en_rep.h net/mlx5e: RX, Re-work initializaiton of RX function pointers 2020-07-28 02:37:41 -07:00
en_rx.c net/mlx5e: Use indirect call wrappers for RX post WQEs functions 2020-07-28 02:37:47 -07:00
en_selftest.c net/mlx5e: IPoIB, Enable loopback packets for IPoIB interfaces 2020-05-15 15:44:30 -07:00
en_stats.c net/mlx5e: kTLS, Add kTLS RX stats 2020-06-27 14:00:23 -07:00
en_stats.h net/mlx5e: kTLS, Add kTLS RX stats 2020-06-27 14:00:23 -07:00
en_tc.c net/mlx5e: CT: Map 128 bits labels to 32 bit map ID 2020-07-16 16:37:00 -07:00
en_tc.h net/mlx5e: CT: Expand tunnel register mappings 2020-07-09 19:51:16 -07:00
en_tx.c net/mlx5e: kTLS, Improve TLS feature modularity 2020-06-27 14:00:20 -07:00
en_txrx.c net/mlx5e: Use indirect call wrappers for RX post WQEs functions 2020-07-28 02:37:47 -07:00
en.h net/mlx5e: Add support for PCI relaxed ordering 2020-07-28 02:37:49 -07:00
eq.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-05-24 13:47:27 -07:00
eswitch_offloads_termtbl.c net/mlx5e: Add support for offloading traffic from uplink to uplink 2020-03-17 19:41:37 -07:00
eswitch_offloads.c net/mlx5: E-switch, Use eswitch total_vports 2020-07-28 02:37:36 -07:00
eswitch.c net/mlx5: E-switch, Reduce dependency on num_vfs during mode set 2020-07-16 16:36:40 -07:00
eswitch.h net/mlx5: E-switch, Reuse total_vports and avoid duplicate nvports 2020-07-28 02:37:34 -07:00
events.c net/mlx5: Fix memory leak in mlx5_events_init 2020-05-22 17:28:46 -07:00
fs_cmd.c net/mlx5e: IPsec: Add IPsec steering in local NIC RX 2020-07-16 16:36:48 -07:00
fs_cmd.h
fs_core.c net/mlx5e: IPsec: Add IPsec steering in local NIC RX 2020-07-16 16:36:48 -07:00
fs_core.h net/mlx5: Avoid eswitch header inclusion in fs core layer 2020-06-27 13:50:46 -07:00
fs_counters.c
fw.c net/mlx5: IPsec: Add HW crypto offload support 2020-07-16 16:36:44 -07:00
health.c net/mlx5: Fix fatal error handling during device load 2020-06-11 15:37:51 -07:00
Kconfig net/mlx5: IPsec: Add HW crypto offload support 2020-07-16 16:36:44 -07:00
lag_mp.c net/mlx5: Use a separate work queue for fib event handling 2020-03-29 23:42:20 -07:00
lag_mp.h net/mlx5: Use a separate work queue for fib event handling 2020-03-29 23:42:20 -07:00
lag.c net/mlx5: Add support to get lag physical port 2020-05-01 12:15:38 -07:00
lag.h
main.c net/mlx5: Accel, Add core IPsec support for the Connect-X family 2020-07-16 16:36:42 -07:00
Makefile net/mlx5e: IPsec: Add IPsec steering in local NIC RX 2020-07-16 16:36:48 -07:00
mcg.c net/mlx5: Update mcg.c new cmd interface 2020-04-23 21:42:11 +03:00
mlx5_core.h net/mlx5: Move internal timer read function to clock library 2020-05-15 15:44:25 -07:00
mr.c net/mlx5: Update mr.c new cmd interface 2020-04-23 21:42:12 +03:00
pagealloc.c net/mlx5: Add function ID to reclaim pages debug log 2020-07-28 02:37:29 -07:00
pci_irq.c
pd.c net/mlx5: Update pd.c new cmd interface 2020-04-23 21:42:13 +03:00
port.c net/mlx5: Fix eeprom support for SFP module 2020-07-09 19:27:04 -07:00
rdma.c
rdma.h
rl.c net/mlx5: Update rl.c new cmd interface 2020-04-23 21:42:14 +03:00
sriov.c net/mlx5: E-switch, Protect eswitch mode changes 2020-03-25 23:19:25 -07:00
transobj.c net/mlx5: Update transobj.c new cmd interface 2020-04-23 21:42:16 +03:00
uar.c net/mlx5: Update uar.c new cmd interface 2020-04-23 21:42:14 +03:00
vport.c net/mlx5: Constify mac address pointer 2020-06-22 15:29:19 -07:00
wq.c
wq.h net/mlx5e: Add helper to get the RQ WQE counter 2020-07-02 21:05:18 -07:00