forked from coolsnowwolf/lede
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
d1f8dda
commit a8cd67f
Showing
18 changed files
with
1,012 additions
and
61 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
7 changes: 7 additions & 0 deletions
7
target/linux/ipq40xx/base-files/etc/hotplug.d/net/16_adjust_network
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
#!/bin/sh | ||
|
||
[ -f /lib/adjust_network.sh ] && { | ||
. /lib/adjust_network.sh | ||
|
||
adjust_eth_queue | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
#!/bin/sh /etc/rc.common | ||
# Copyright (C) 2006-2011 OpenWrt.org | ||
|
||
START=11 | ||
STOP=98 | ||
|
||
adjust_smp_affinity() { | ||
test -f /lib/adjust_network.sh && { | ||
. /lib/adjust_network.sh | ||
|
||
adjust_edma_smp_affinity | ||
adjust_radio_smp_affinity | ||
} | ||
} | ||
|
||
boot() { | ||
adjust_smp_affinity | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,86 @@ | ||
#!/bin/sh | ||
# this scripts is used for adjust cpu's choice of interrupts. | ||
# | ||
|
||
################################################ | ||
# Adjust smp_affinity of edma | ||
# Globals: | ||
# None | ||
# Arguments: | ||
# None | ||
# Returns: | ||
# None | ||
# Remark: | ||
# execute only once on start-up. | ||
################################################ | ||
adjust_edma_smp_affinity() { | ||
grep -q edma_eth_ /proc/interrupts || return 0 | ||
local nr=`cat /proc/cpuinfo | grep processor | wc -l` | ||
local cpu=0 | ||
local tx_irq_num | ||
|
||
for tx_num in `seq 0 1 15` ; do | ||
cpu=`printf "%x" $((1<<((tx_num/4+3)%nr)))` | ||
tx_irq_num=`grep -m1 edma_eth_tx$tx_num /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` | ||
[ -n "$tx_irq_num" ] && echo $cpu > /proc/irq/$tx_irq_num/smp_affinity | ||
done | ||
|
||
for rx_num in `seq 0 1 7` ; do | ||
cpu=`printf "%x" $((1<<((rx_num/2)%nr)))` | ||
rx_irq_num=`grep -m1 edma_eth_rx$rx_num /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` | ||
[ -n "$rx_irq_num" ] && echo $cpu > /proc/irq/$rx_irq_num/smp_affinity | ||
done | ||
} | ||
|
||
################################################ | ||
# Adjust smp_affinity of ath10k for 2G and 5G | ||
# Globals: | ||
# None | ||
# Arguments: | ||
# None | ||
# Returns: | ||
# None | ||
# Remark: | ||
# execute only once on start-up. | ||
################################################ | ||
adjust_radio_smp_affinity() { | ||
local irqs="`grep -E 'ath10k' /proc/interrupts | cut -d ':' -f 1 | tr -d ' '`" | ||
local nr=`cat /proc/cpuinfo | grep processor | wc -l` | ||
local idx=2 | ||
|
||
for irq in $irqs; do | ||
cpu=`printf "%x" $((1<<((idx)%nr)))` | ||
echo $cpu > /proc/irq/$irq/smp_affinity | ||
idx=$((idx+1)) | ||
done | ||
} | ||
|
||
################################################ | ||
# Adjust queue of eth | ||
# Globals: | ||
# None | ||
# Arguments: | ||
# None | ||
# Returns: | ||
# None | ||
# Remark: | ||
# Each network reboot needs to be executed. | ||
################################################ | ||
adjust_eth_queue() { | ||
local nr=`cat /proc/cpuinfo | grep processor | wc -l` | ||
local cpu=`printf "%x" $(((1<<nr)-1))` | ||
|
||
for epath in /sys/class/net/eth[0-9]*; do | ||
test -e $epath || break | ||
echo $epath | grep -q "\." && continue | ||
eth=`basename $epath` | ||
for exps in /sys/class/net/$eth/queues/rx-[0-9]*/rps_cpus; do | ||
test -e $exps || break | ||
echo $cpu > $exps | ||
echo 256 > `dirname $exps`/rps_flow_cnt | ||
done | ||
which ethtool >/dev/null 2>&1 && ethtool -K $eth gro off | ||
done | ||
|
||
echo 1024 > /proc/sys/net/core/rps_sock_flow_entries | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.