linux/Documentation
Jakub Kicinski ee2a35fedb 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.
 -----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>
2023-10-17 18:27:27 -07:00
..
ABI - Core Frameworks 2023-09-04 13:52:58 -07:00
accel
accounting
admin-guide bpf-next-for-netdev 2023-10-16 21:05:33 -07:00
arch arm64 fixes for -rc5 2023-10-06 07:46:25 -07:00
block Documentation work keeps chugging along; stuff for 6.6 includes: 2023-08-30 20:05:42 -07:00
bpf documentation/bpf: Document cgroup unix socket address hooks 2023-10-11 17:27:55 -07:00
cdrom
core-api printk changes for 6.6 2023-09-04 13:20:19 -07:00
cpu-freq
crypto
dev-tools LoongArch changes for v6.6 2023-09-08 12:16:52 -07:00
devicetree dt-bindings: i3c: Add mctp-controller property 2023-10-17 12:45:02 +02:00
doc-guide
driver-api dpll: docs: add support for pin signal phase offset/adjust 2023-10-15 16:08:24 +01:00
fault-injection Documentation: Fix typos 2023-08-18 11:29:03 -06:00
fb Documentation: Fix typos 2023-08-18 11:29:03 -06:00
features LoongArch changes for v6.6 2023-09-08 12:16:52 -07:00
filesystems Changes since last update: 2023-10-05 20:47:47 -07:00
firmware_class
firmware-guide Documentation work keeps chugging along; stuff for 6.6 includes: 2023-08-30 20:05:42 -07:00
fpga
gpu drm ci for 6.6-rc1 2023-09-10 11:55:26 -07:00
hid
hwmon Documentation work keeps chugging along; stuff for 6.6 includes: 2023-08-30 20:05:42 -07:00
i2c media updates for v6.6-rc1 2023-09-01 12:21:32 -07:00
iio
images
infiniband
input input: docs: pxrc: remove reference to phoenix-sim 2023-08-28 12:43:32 -06:00
isdn
kbuild Documentation: kbuild: explain handling optional dependencies 2023-09-25 16:01:05 +09:00
kernel-hacking
leds
litmus-tests
livepatch Documentation: Fix typos 2023-08-18 11:29:03 -06:00
locking Documentation: Fix typos 2023-08-18 11:29:03 -06:00
maintainer Documentation work keeps chugging along; stuff for 6.6 includes: 2023-08-30 20:05:42 -07:00
mhi
misc-devices
mm Add x86 shadow stack support 2023-08-31 12:20:12 -07:00
netlabel
netlink dpll: spec: add support for pin-dpll signal phase offset/adjust 2023-10-15 16:08:24 +01:00
networking mlx5-updates-2023-10-10 2023-10-17 18:27:27 -07:00
nvdimm
nvme
PCI Merge branch 'pci/misc' 2023-08-29 11:03:57 -05:00
pcmcia
peci
power Documentation: Fix typos 2023-08-18 11:29:03 -06:00
powerpc powerpc updates for 6.6 2023-08-31 12:43:10 -07:00
process docs: try to encourage (netdev?) reviewers 2023-10-15 14:26:51 +01:00
RCU
riscv Merge patch series "RISC-V: Probe for misaligned access speed" 2023-09-08 11:24:12 -07:00
rust Documentation work keeps chugging along; stuff for 6.6 includes: 2023-08-30 20:05:42 -07:00
scheduler Documentation work keeps chugging along; stuff for 6.6 includes: 2023-08-30 20:05:42 -07:00
scsi SCSI misc on 20230902 2023-09-02 12:02:41 -07:00
security Documentation: Fix typos 2023-08-18 11:29:03 -06:00
sound ALSA: docs: Fix a typo of midi2_ump_probe option for snd-usb-audio 2023-09-12 10:00:46 +02:00
sphinx Documentation: Fix typos 2023-08-18 11:29:03 -06:00
sphinx-static
spi Documentation: Fix typos 2023-08-18 11:29:03 -06:00
staging
target
timers
tools rtla: fix a example in rtla-timerlat-hist.rst 2023-09-22 14:44:04 +02:00
trace Probes updates for v6.6: 2023-09-02 11:10:50 -07:00
translations docs/zh_CN/LoongArch: Update the links of ABI 2023-09-20 14:26:38 +08:00
usb USB / Thunderbolt / PHY driver update for 6.6-rc1 2023-09-01 09:23:34 -07:00
userspace-api docs: netlink: clean up after deprecating version 2023-10-17 17:59:51 -07:00
virt ARM: 2023-09-07 13:52:20 -07:00
w1 Documentation: Fix typos 2023-08-18 11:29:03 -06:00
watchdog Documentation: Fix typos 2023-08-18 11:29:03 -06:00
wmi Documentation work keeps chugging along; stuff for 6.6 includes: 2023-08-30 20:05:42 -07:00
.gitignore
atomic_bitops.txt
atomic_t.txt
Changes
CodingStyle
conf.py
docutils.conf
dontdiff
index.rst
Kconfig
Makefile
memory-barriers.txt
SubmittingPatches
subsystem-apis.rst