ee2a35fedb
1) Adham Faris, Increase max supported channels number to 256 2) Leon Romanovsky, Allow IPsec soft/hard limits in bytes 3) Shay Drory, Replace global mlx5_intf_lock with HCA devcom component lock 4) Wei Zhang, Optimize SF creation flow During SF creation, HCA state gets changed from INVALID to IN_USE step by step. Accordingly, FW sends vhca event to driver to inform about this state change asynchronously. Each vhca event is critical because all related SW/FW operations are triggered by it. Currently there is only a single mlx5 general event handler which not only handles vhca event but many other events. This incurs huge bottleneck because all events are forced to be handled in serial manner. Moreover, all SFs share same table_lock which inevitably impacts each other when they are created in parallel. This series will solve this issue by: 1. A dedicated vhca event handler is introduced to eliminate the mutual impact with other mlx5 events. 2. Max FW threads work queues are employed in the vhca event handler to fully utilize FW capability. 3. Redesign SF active work logic to completely remove table_lock. With above optimization, SF creation time is reduced by 25%, i.e. from 80s to 60s when creating 100 SFs. Patches summary: Patch 1 - implement dedicated vhca event handler with max FW cmd threads of work queues. Patch 2 - remove table_lock by redesigning SF active work logic. -----BEGIN PGP SIGNATURE----- iQEzBAABCAAdFiEEGhZs6bAKwk/OTgTpSD+KveBX+j4FAmUqzPEACgkQSD+KveBX +j52rwf/c/LnKjPdcWztDIj4YQys9VfyWm9rkYmuiQ9XTYjzY7Y9RTW9XvrJSTdA GsD8EmWnqysr0HyRqksuhR6QHydU+fOrOIYxA0OeIbqXXmhIoDqnqTPQftK1q8Cq xZ4wDWowwoOGs5BXYsj6m+53ukyB91/dVHS8qiqL6SzDhm6pEEqjeoum7bxM1lKF HxLHNLWp3wolLn361Qlvd7SyOcDu3/c7+DYUJ04Hc2TcJEc7G5ZkBtqMNUZ599Z8 06lXXj1FgIGtqzuddHLpS71gvp5yvtiw/2ujmIX7YuH8zHDqGRhKUYiJ1eRk80iw aYPESXC0OsQDWgNFc13f5eTQgc2p/Q== =Qaae -----END PGP SIGNATURE----- Merge tag 'mlx5-updates-2023-10-10' of git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux Saeed Mahameed says: ==================== mlx5-updates-2023-10-10 1) Adham Faris, Increase max supported channels number to 256 2) Leon Romanovsky, Allow IPsec soft/hard limits in bytes 3) Shay Drory, Replace global mlx5_intf_lock with HCA devcom component lock 4) Wei Zhang, Optimize SF creation flow During SF creation, HCA state gets changed from INVALID to IN_USE step by step. Accordingly, FW sends vhca event to driver to inform about this state change asynchronously. Each vhca event is critical because all related SW/FW operations are triggered by it. Currently there is only a single mlx5 general event handler which not only handles vhca event but many other events. This incurs huge bottleneck because all events are forced to be handled in serial manner. Moreover, all SFs share same table_lock which inevitably impacts each other when they are created in parallel. This series will solve this issue by: 1. A dedicated vhca event handler is introduced to eliminate the mutual impact with other mlx5 events. 2. Max FW threads work queues are employed in the vhca event handler to fully utilize FW capability. 3. Redesign SF active work logic to completely remove table_lock. With above optimization, SF creation time is reduced by 25%, i.e. from 80s to 60s when creating 100 SFs. Patches summary: Patch 1 - implement dedicated vhca event handler with max FW cmd threads of work queues. Patch 2 - remove table_lock by redesigning SF active work logic. * tag 'mlx5-updates-2023-10-10' of git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux: net/mlx5e: Allow IPsec soft/hard limits in bytes net/mlx5e: Increase max supported channels number to 256 net/mlx5e: Preparations for supporting larger number of channels net/mlx5e: Refactor mlx5e_rss_init() and mlx5e_rss_free() API's net/mlx5e: Refactor mlx5e_rss_set_rxfh() and mlx5e_rss_get_rxfh() net/mlx5e: Refactor rx_res_init() and rx_res_free() APIs net/mlx5e: Use PTR_ERR_OR_ZERO() to simplify code net/mlx5: Use PTR_ERR_OR_ZERO() to simplify code net/mlx5: fix config name in Kconfig parameter documentation net/mlx5: Remove unused declaration net/mlx5: Replace global mlx5_intf_lock with HCA devcom component lock net/mlx5: Refactor LAG peer device lookout bus logic to mlx5 devcom net/mlx5: Avoid false positive lockdep warning by adding lock_class_key net/mlx5: Redesign SF active work to remove table_lock net/mlx5: Parallelize vhca event handling ==================== Link: https://lore.kernel.org/r/20231014171908.290428-1-saeed@kernel.org Signed-off-by: Jakub Kicinski <kuba@kernel.org> |
||
---|---|---|
.. | ||
caif | ||
device_drivers | ||
devlink | ||
dsa | ||
mac80211_hwsim | ||
6lowpan.rst | ||
6pack.rst | ||
af_xdp.rst | ||
alias.rst | ||
arcnet-hardware.rst | ||
arcnet.rst | ||
atm.rst | ||
ax25.rst | ||
bareudp.rst | ||
batman-adv.rst | ||
bonding.rst | ||
bridge.rst | ||
can_ucan_protocol.rst | ||
can.rst | ||
cdc_mbim.rst | ||
checksum-offloads.rst | ||
dccp.rst | ||
dctcp.rst | ||
dns_resolver.rst | ||
driver.rst | ||
eql.rst | ||
ethtool-netlink.rst | ||
failover.rst | ||
fib_trie.rst | ||
filter.rst | ||
gen_stats.rst | ||
generic_netlink.rst | ||
generic-hdlc.rst | ||
gtp.rst | ||
ieee802154.rst | ||
ila.rst | ||
index.rst | ||
ioam6-sysctl.rst | ||
ip_dynaddr.rst | ||
ip-sysctl.rst | ||
ipsec.rst | ||
ipv6.rst | ||
ipvlan.rst | ||
ipvs-sysctl.rst | ||
j1939.rst | ||
kapi.rst | ||
kcm.rst | ||
l2tp.rst | ||
lapb-module.rst | ||
mac80211-auth-assoc-deauth.txt | ||
mac80211-injection.rst | ||
mctp.rst | ||
mpls-sysctl.rst | ||
mptcp-sysctl.rst | ||
msg_zerocopy.rst | ||
multiqueue.rst | ||
napi.rst | ||
net_dim.rst | ||
net_failover.rst | ||
netconsole.rst | ||
netdev-features.rst | ||
netdevices.rst | ||
netfilter-sysctl.rst | ||
netif-msg.rst | ||
nexthop-group-resilient.rst | ||
nf_conntrack-sysctl.rst | ||
nf_flowtable.rst | ||
nfc.rst | ||
openvswitch.rst | ||
operstates.rst | ||
packet_mmap.rst | ||
page_pool.rst | ||
phonet.rst | ||
phy.rst | ||
pktgen.rst | ||
plip.rst | ||
ppp_generic.rst | ||
proc_net_tcp.rst | ||
radiotap-headers.rst | ||
rds.rst | ||
regulatory.rst | ||
representors.rst | ||
rxrpc.rst | ||
scaling.rst | ||
sctp.rst | ||
secid.rst | ||
seg6-sysctl.rst | ||
segmentation-offloads.rst | ||
sfp-phylink.rst | ||
skbuff.rst | ||
smc-sysctl.rst | ||
snmp_counter.rst | ||
statistics.rst | ||
strparser.rst | ||
switchdev.rst | ||
sysfs-tagging.rst | ||
tc-actions-env-rules.rst | ||
tc-queue-filters.rst | ||
tcp-thin.rst | ||
team.rst | ||
timestamping.rst | ||
tipc.rst | ||
tls-handshake.rst | ||
tls-offload-layers.svg | ||
tls-offload-reorder-bad.svg | ||
tls-offload-reorder-good.svg | ||
tls-offload.rst | ||
tls.rst | ||
tproxy.rst | ||
tuntap.rst | ||
udplite.rst | ||
vrf.rst | ||
vxlan.rst | ||
x25-iface.rst | ||
x25.rst | ||
xdp-rx-metadata.rst | ||
xfrm_device.rst | ||
xfrm_proc.rst | ||
xfrm_sync.rst | ||
xfrm_sysctl.rst |