diff options
Diffstat (limited to 'target/linux/cns3xxx/base-files/etc/init.d')
-rwxr-xr-x | target/linux/cns3xxx/base-files/etc/init.d/netdev-cpu | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/target/linux/cns3xxx/base-files/etc/init.d/netdev-cpu b/target/linux/cns3xxx/base-files/etc/init.d/netdev-cpu new file mode 100755 index 0000000..3a2a57b --- /dev/null +++ b/target/linux/cns3xxx/base-files/etc/init.d/netdev-cpu @@ -0,0 +1,21 @@ +#!/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() { + set_irq_affinity gig_switch 2 + set_irq_affinity gig_stat 2 +} |