From ffdc908e7baa2b9fdb573e737e17830fb3c1f4b8 Mon Sep 17 00:00:00 2001 From: Qosmio Date: Sat, 27 Jan 2024 18:18:36 -0500 Subject: [PATCH] qca-nss-drv: add affinity function to set last match Since NSS IRQs use the same name for each core, the current function assigns all matching names to the same CPU core. Add function 'set_affinity_last' to specify that only the 'last' matching irq ID be set to the specified CPU core. --- qca/qca-nss-drv/files/qca-nss-drv.init | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/qca/qca-nss-drv/files/qca-nss-drv.init b/qca/qca-nss-drv/files/qca-nss-drv.init index f8bccc6..7c71e38 100644 --- a/qca/qca-nss-drv/files/qca-nss-drv.init +++ b/qca/qca-nss-drv/files/qca-nss-drv.init @@ -24,6 +24,12 @@ enable_rps() { [ -n "$irq" ] && echo $2 > /proc/irq/$irq/smp_affinity done } + set_affinity_last() { + awk "/$1/{sub(/:/,\"\");last=\$1} END{print last}" /proc/interrupts| while read irq + do + [ -n "$irq" ] && echo $2 > /proc/irq/$irq/smp_affinity + done + } # assign 3 nss queues to each core set_affinity 'nss_queue1' 2 @@ -34,6 +40,7 @@ enable_rps() { # assign lan/wan to core 4 set_affinity 'nss_empty_buf_sos' 4 set_affinity 'nss_empty_buf_queue' 4 + set_affinity_last 'nss_empty_buf_sos' 8 # Enable NSS RPS sysctl -w dev.nss.rps.enable=1 > /dev/null 2> /dev/null @@ -45,3 +52,4 @@ start() { enable_rps fi } +