]> git.ipfire.org Git - thirdparty/openwrt.git/commit
qualcommax: pin EDMA processing to dedicated CPUs 24203/head
authorRobert Marko <robimarko@gmail.com>
Mon, 13 Jul 2026 09:07:26 +0000 (11:07 +0200)
committerRobert Marko <robimarko@gmail.com>
Mon, 13 Jul 2026 10:34:33 +0000 (12:34 +0200)
commit305c7599e5fa400cf6221fd0a596dbd014529235
tree9b095db0216f5d0ff3fdd5717c902e7d655ff485
parent98108710b65b07e2b2bb4c0e0727b9830709493b
qualcommax: pin EDMA processing to dedicated CPUs

IPQ60xx and IPQ807x use threaded NAPI for EDMA. The NAPI threads
inherit CPU0 affinity, and running both there can eventually starve the
RX fill ring under sustained traffic.

Add an IPQ60xx smp_affinity service and extend the existing IPQ807x
service to discover the EDMA IRQs and NAPI IDs at runtime. Place RX on
CPU1 and TX on CPU2. Retry EDMA setup asynchronously because its NAPI
threads may appear after the init service runs.

Provide the same UCI enable and logging controls on both subtargets.
IPQ50xx uses a different Ethernet driver and is left unchanged.

Link: https://github.com/openwrt/openwrt/pull/24203
Signed-off-by: Robert Marko <robimarko@gmail.com>
target/linux/qualcommax/ipq60xx/base-files/etc/init.d/smp_affinity [new file with mode: 0755]
target/linux/qualcommax/ipq60xx/base-files/etc/uci-defaults/15_smp_affinity [new file with mode: 0644]
target/linux/qualcommax/ipq807x/base-files/etc/init.d/smp_affinity