From 01895c315f0485779a2e312c58708a32b4ea1f9a Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Mon, 21 Jan 2019 17:14:52 +0100 Subject: [PATCH] ramips: move wifi related interrupts off the main core on SMP systems Improves LAN<->WLAN bridging/routing performance Signed-off-by: Felix Fietkau --- .../base-files/etc/init.d/set-irq-affinity | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100755 target/linux/ramips/base-files/etc/init.d/set-irq-affinity 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 000000000000..9a3afefa5a3c --- /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 +} -- 2.30.2