diff --git a/qca/qca-nss-drv/files/qca-nss-drv.init b/qca/qca-nss-drv/files/qca-nss-drv.init index de12cb6..6c9261b 100644 --- a/qca/qca-nss-drv/files/qca-nss-drv.init +++ b/qca/qca-nss-drv/files/qca-nss-drv.init @@ -18,24 +18,35 @@ START=70 enable_rps() { - irq_nss_rps=`grep nss_queue1 /proc/interrupts | cut -d ':' -f 1 | tr -d ' '` + irq_nss_rps=$(grep nss_queue1 /proc/interrupts | cut -d ':' -f 1 | tr -d ' ') for entry in $irq_nss_rps do echo 2 > /proc/irq/$entry/smp_affinity done - irq_nss_rps=`grep nss_queue2 /proc/interrupts | cut -d ':' -f 1 | tr -d ' '` + irq_nss_rps=$(grep nss_queue2 /proc/interrupts | cut -d ':' -f 1 | tr -d ' ') for entry in $irq_nss_rps do echo 4 > /proc/irq/$entry/smp_affinity done - irq_nss_rps=`grep nss_queue3 /proc/interrupts | cut -d ':' -f 1 | tr -d ' '` + irq_nss_rps=$(grep nss_queue3 /proc/interrupts | cut -d ':' -f 1 | tr -d ' ') for entry in $irq_nss_rps do echo 8 > /proc/irq/$entry/smp_affinity done + irq_nss_rps=$(grep nss_queue0 /proc/interrupts | cut -d ':' -f 1 | tr -d ' ') + for entry in $irq_nss_rps + do + echo 8 > /proc/irq/$entry/smp_affinity + done + + awk '/nss_empty_buf/{sub(/:/,""); print $1}' /proc/interrupts|while read -r entry + do + echo 4 > /proc/irq/$entry/smp_affinity + done + # Enable NSS RPS sysctl -w dev.nss.rps.enable=1 >/dev/null 2>/dev/null