ramips: move wifi related interrupts off the main core on SMP systems

Improves LAN<->WLAN bridging/routing performance

Signed-off-by: Felix Fietkau <nbd@nbd.name>
master
Felix Fietkau 6 years ago
parent e1496d631e
commit 01895c315f
  1. 31
      target/linux/ramips/base-files/etc/init.d/set-irq-affinity

@ -0,0 +1,31 @@
#!/bin/sh /etc/rc.common
START=99
get_irq() {
local name="$1"
grep -m 1 "$name" /proc/interrupts | cut -d: -f1 | sed 's, *,,'
}
set_irq_affinity() {
local name="$1"
local val="$2"
local irq="$(get_irq "$name")"
[ -n "$irq" ] || return
echo "$val" > "/proc/irq/$irq/smp_affinity"
}
start() {
if grep -q 'processor.*: 2' /proc/cpuinfo; then
mask1=4
mask2=8
elif grep -q 'processor.*: 1' /proc/cpuinfo; then
mask1=2
mask2=2
else
return
fi
set_irq_affinity mt76x2e $mask1
set_irq_affinity mt7603e $mask2
}
Loading…
Cancel
Save