linux/drivers/net
Avihai Horon bd4ba605c4 RDMA/mlx5: Allow relaxed ordering read in VFs and VMs
According to PCIe spec, Enable Relaxed Ordering value in the VF's PCI
config space is wired to 0 and PF relaxed ordering (RO) setting should
be applied to the VF. In QEMU (and maybe others), when assigning VFs,
the RO bit in PCI config space is not emulated properly and is always
set to 0.

Therefore, pcie_relaxed_ordering_enabled() always returns 0 for VFs and
VMs and thus MKeys can't be created with RO read even if the PF supports
it.

pcie_relaxed_ordering_enabled() check was added to avoid a syndrome when
creating a MKey with relaxed ordering (RO) enabled when the driver's
relaxed_ordering_read_pci_enabled HCA capability is out of sync with FW.
With the new relaxed_ordering_read capability this can't happen, as it's
set regardless of RO value in PCI config space and thus can't change
during runtime.

Hence, to allow RO read in VFs and VMs, use the new HCA capability
relaxed_ordering_read without checking pcie_relaxed_ordering_enabled().
The old capability checks are kept for backward compatibility with older
FWs.

Allowing RO in VFs and VMs is valuable since it can greatly improve
performance on some setups. For example, testing throughput of a VF on
an AMD EPYC 7763 and ConnectX-6 Dx setup showed roughly 60% performance
improvement.

Signed-off-by: Avihai Horon <avihaih@nvidia.com>
Reviewed-by: Shay Drory <shayd@nvidia.com>
Reviewed-by: Aya Levin <ayal@nvidia.com>
Link: https://lore.kernel.org/r/e7048640d66c341a8fa0465e099926e7989184bc.1681131553.git.leon@kernel.org
Reviewed-by: Jacob Keller <jacob.e.keller@intel.com>
Signed-off-by: Leon Romanovsky <leon@kernel.org>
2023-04-16 13:29:26 +03:00
..
appletalk
arcnet
bonding bonding: restore bond's IFF_SLAVE flag if a non-eth dev enslave fails 2023-03-17 07:56:41 +00:00
caif
can net: Use of_property_read_bool() for boolean properties 2023-03-16 17:41:28 +00:00
dsa net: dsa: microchip: fix RGMII delay configuration on KSZ8765/KSZ8794/KSZ8795 2023-03-16 21:23:07 -07:00
ethernet RDMA/mlx5: Allow relaxed ordering read in VFs and VMs 2023-04-16 13:29:26 +03:00
fddi
fjes
hamradio
hippi
hyperv Networking changes for 6.3. 2023-02-21 18:24:12 -08:00
ieee802154 ca8210: fix mac_len negative array access 2023-03-02 14:39:48 +01:00
ipa net: ipa: fix some register validity checks 2023-03-16 21:33:18 -07:00
ipvlan ipvlan: Make skb->skb_iif track skb->dev for l3s mode 2023-03-10 21:27:15 -08:00
mctp
mdio net: dsa: seville: ignore mscc-miim read errors from Lynx PCS 2023-02-26 18:31:37 +00:00
netdevsim bpf-next-for-netdev 2023-02-10 17:51:27 -08:00
pcs net: pcs: rzn1-miic: remove unused struct members and use miic variable 2023-02-09 22:47:16 -08:00
phy net: phy: mscc: fix deadlock in phy_ethtool_{get,set}_wol() 2023-03-15 21:33:22 -07:00
plip
ppp
pse-pd
slip
team
thunderbolt
usb net: usb: smsc75xx: Move packet length check to prevent kernel panic in skb_pull 2023-03-16 17:27:56 -07:00
vmxnet3 vmxnet3: move rss code block under eop descriptor 2023-02-09 22:50:46 -08:00
vxlan
wan net: Use of_property_read_bool() for boolean properties 2023-03-16 17:41:28 +00:00
wireguard cpumask: fix incorrect cpumask scanning result checks 2023-03-06 12:15:13 -08:00
wireless net: Use of_property_read_bool() for boolean properties 2023-03-16 17:41:28 +00:00
wwan
xen-netback Including fixes from wireless and netfilter. 2023-02-27 14:05:08 -08:00
amt.c
bareudp.c
dummy.c
eql.c
geneve.c
gtp.c
ifb.c
Kconfig Networking changes for 6.3. 2023-02-21 18:24:12 -08:00
LICENSE.SRC
loopback.c
macsec.c Networking changes for 6.3. 2023-02-21 18:24:12 -08:00
macvlan.c
macvtap.c
Makefile
mdio.c
mhi_net.c
mii.c
net_failover.c
netconsole.c
nlmon.c
ntb_netdev.c
rionet.c
sb1000.c
Space.c
sungem_phy.c
tap.c tap: tap_open(): correctly initialize socket uid 2023-02-06 10:16:55 +00:00
tun.c bpf-next-for-netdev 2023-02-10 17:51:27 -08:00
veth.c veth: Fix use after free in XDP_REDIRECT 2023-03-15 21:11:06 -07:00
virtio_net.c virtio_net: free xdp shinfo frags when build_skb_from_xdp_buff() fails 2023-03-16 17:46:05 +00:00
vrf.c
vsockmon.c
xen-netfront.c