From: Felix Fietkau Date: Mon, 21 Jan 2019 16:14:52 +0000 (+0100) Subject: ramips: move wifi related interrupts off the main core on SMP systems X-Git-Tag: v19.07.0-rc1~1425 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=01895c315f0485779a2e312c58708a32b4ea1f9a;p=oweals%2Fopenwrt.git ramips: move wifi related interrupts off the main core on SMP systems Improves LAN<->WLAN bridging/routing performance Signed-off-by: Felix Fietkau --- diff --git a/target/linux/ramips/base-files/etc/init.d/set-irq-affinity b/target/linux/ramips/base-files/etc/init.d/set-irq-affinity new file mode 100755 index 0000000000..9a3afefa5a --- /dev/null +++ b/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 +}