mirror of
https://github.com/qosmio/nss-packages.git
synced 2025-12-16 08:12:53 +00:00
nss-drv: rework smp affinity hangling
Reworked SMP affinity handling for better balancing of PPDU and USBs ``` Pinning IRQ(46) nss_queue0 to CPU 0 (NSS Core 0) Pinning IRQ(47) nss_queue1 to CPU 1 (NSS Core 0) Pinning IRQ(48) nss_queue2 to CPU 2 (NSS Core 0) Pinning IRQ(49) nss_queue3 to CPU 3 (NSS Core 0) Pinning IRQ(57) nss_queue0 to CPU 3 (NSS Core 1) Pinning IRQ(58) nss_queue1 to CPU 2 (NSS Core 1) Pinning IRQ(59) nss_queue2 to CPU 1 (NSS Core 1) Pinning IRQ(60) nss_queue3 to CPU 0 (NSS Core 1) Pinning IRQ(43) nss_empty_buf_sos to CPU 0 (NSS Core 0) Pinning IRQ(44) nss_empty_buf_queue to CPU 0 (NSS Core 0) Pinning IRQ(53) nss_empty_buf_sos to CPU 3 (NSS Core 1) Pinning IRQ(55) nss_empty_buf_queue to CPU 3 (NSS Core 1) Pinning IRQ(41) xhci-hcd:usb1 to CPU 2 Pinning IRQ(42) xhci-hcd:usb3 to CPU 2 Pinning IRQ(79) ppdu-end-interrupts-mac1 to CPU 2 Pinning IRQ(83) ppdu-end-interrupts-mac2 to CPU 3 Pinning IRQ(81) ppdu-end-interrupts-mac3 to CPU 1 ``` Primarily meant to improve performance on Arcadyan AW1000 which uses USB based cellular modems (xhci-hcd:usb3). They are now pinned to CPU 2 Signed-off-by: Sean Khan <datapronix@protonmail.com>
This commit is contained in:
parent
370137d0bf
commit
2f4750a191
@ -1,7 +1,7 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=qca-nss-drv
|
||||
PKG_RELEASE:=16
|
||||
PKG_RELEASE:=17
|
||||
|
||||
PKG_SOURCE_URL:=https://git.codelinaro.org/clo/qsdk/oss/lklm/nss-drv.git
|
||||
PKG_SOURCE_PROTO:=git
|
||||
|
||||
@ -2,6 +2,7 @@
|
||||
# vim: set syn=bash
|
||||
# shellcheck disable=2155,3010,3019,3043,3057,3060
|
||||
|
||||
# shellcheck disable=2034
|
||||
START=94
|
||||
PROG="qca-nss-drv"
|
||||
|
||||
@ -92,29 +93,36 @@ set_affinity() {
|
||||
enable_rps() {
|
||||
|
||||
# NSS Core 0 : 4 nss queues to each core
|
||||
set_affinity "nss_queue0" 0-3 1
|
||||
set_affinity "nss_queue0" 0 1
|
||||
set_affinity "nss_queue1" 1 1
|
||||
set_affinity "nss_queue2" 2 1
|
||||
set_affinity "nss_queue3" 3 1
|
||||
|
||||
# NSS Core 1 : 1 nss queue to 3rd core
|
||||
set_affinity "nss_queue0" 3 2
|
||||
set_affinity "nss_queue1" 2 2
|
||||
set_affinity "nss_queue2" 1 2
|
||||
set_affinity "nss_queue3" 0 2
|
||||
|
||||
# NSS Core 0 : 2 nss sos/queues to last core
|
||||
set_affinity "nss_empty_buf_sos" 1-3 1
|
||||
set_affinity "nss_empty_buf_queue" 2,3 1
|
||||
set_affinity "nss_empty_buf_sos" 0 1
|
||||
set_affinity "nss_empty_buf_queue" 0 1
|
||||
|
||||
# NSS Core 1 : 1 nss sos to last core
|
||||
set_affinity "nss_empty_buf_sos" 3 2
|
||||
set_affinity "nss_empty_buf_queue" 3 2
|
||||
|
||||
# USB 3.0 : pin to 3rd core
|
||||
set_affinity "xhci-hcd:usb1" 1,3 1
|
||||
set_affinity "xhci-hcd:usb1" 2 1
|
||||
set_affinity "xhci-hcd:usb2" 2 1
|
||||
set_affinity "xhci-hcd:usb3" 2 1
|
||||
|
||||
# TCL Completion, REO Dest, ERR, Exception and h2rxdma
|
||||
# are offloaded, so balance remaining IRQs accordingly.
|
||||
# PPDU IRQ : pin to 2nd and 3rd core
|
||||
set_affinity 'ppdu-end-interrupts-mac1' 1 1
|
||||
set_affinity 'ppdu-end-interrupts-mac3' 2 1
|
||||
set_affinity 'ppdu-end-interrupts-mac1' 2 1
|
||||
set_affinity 'ppdu-end-interrupts-mac2' 3 1
|
||||
set_affinity 'ppdu-end-interrupts-mac3' 1 1
|
||||
|
||||
set_affinity 'ath10k_pci' 2,3 1
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user