From 7ac6cc2a06cfdd9c14a158035505f62678745d22 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Mon, 11 Oct 2021 19:47:41 +0800 Subject: [PATCH] autocore: rewrite autocore script for x86 Signed-off-by: Tianling Shen --- .../emortal/autocore/files/generic/cpuinfo | 8 ++- package/emortal/autocore/files/x86/autocore | 59 ++++++++----------- 2 files changed, 30 insertions(+), 37 deletions(-) diff --git a/package/emortal/autocore/files/generic/cpuinfo b/package/emortal/autocore/files/generic/cpuinfo index 86dd351708..1f2fef4e2a 100755 --- a/package/emortal/autocore/files/generic/cpuinfo +++ b/package/emortal/autocore/files/generic/cpuinfo @@ -1,8 +1,12 @@ #!/bin/sh -cpu_arch="$(grep "model name" "/proc/cpuinfo" | head -n1 | awk -F ': ' '{print $2}')" +cpu_arch="$(grep "model name" "/proc/cpuinfo" | head -n1 | awk -F ': ' '{print $2}' | xargs)" [ -z "${cpu_arch}" ] && cpu_arch="?" -cpu_cores="$(grep "processor" "/proc/cpuinfo" | wc -l)" +if grep -q "x86" "/etc/openwrt_release"; then + cpu_cores="$(grep "core id" "/proc/cpuinfo" | sort -u | wc -l)C $(grep -c "processor" "/proc/cpuinfo")T" +else + cpu_cores="$(grep -c "processor" "/proc/cpuinfo")" +fi if grep -q "bcm27xx" "/etc/openwrt_release"; then cpu_freq="$(expr $(vcgencmd measure_clock arm | awk -F '=' '{print $2}') / 1000000)Mhz" diff --git a/package/emortal/autocore/files/x86/autocore b/package/emortal/autocore/files/x86/autocore index 7b3012bf9d..5864cb2b27 100755 --- a/package/emortal/autocore/files/x86/autocore +++ b/package/emortal/autocore/files/x86/autocore @@ -3,48 +3,37 @@ START=99 -start() -{ +start() { rfc=4096 - cc=$(grep -c processor /proc/cpuinfo) - rsfe=$(echo $cc*$rfc | bc) - sysctl -w net.core.rps_sock_flow_entries=$rsfe >/dev/null - for fileRps in $(ls /sys/class/net/eth*/queues/rx-*/rps_cpus) + threads="$(grep -c "processor" "/proc/cpuinfo")" + + sysctl -w net.core.rps_sock_flow_entries="$(expr "$rfc" \* "$threads")" >"/dev/null" 2>&1 + + for fileRps in /sys/class/net/eth*/queues/rx-*/rps_cpus do - echo $cc > $fileRps + echo "$threads" > "$fileRps" >"/dev/null" 2>&1 done - - for fileRfc in $(ls /sys/class/net/eth*/queues/rx-*/rps_flow_cnt) + + for fileRfc in /sys/class/net/eth*/queues/rx-*/rps_flow_cnt do - echo $rfc > $fileRfc + echo "$rfc" > "$fileRfc" >"/dev/null" 2>&1 done - - uci set network.@globals[0].packet_steering=1 + + uci set network.@globals[0].packet_steering="1" uci commit network - - a=$(cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq) - b=$(echo -n ' : ') - c=$(cat /proc/cpuinfo | grep 'core id' | sort -u | wc -l) - d=$(echo -n ' Core ') - e=$(cat /proc/cpuinfo | grep 'processor' | wc -l) - f=$(echo -n ' Thread ') - g=${a}${b}${c}${d}${e}${f} - mkdir -p /tmp/sysinfo - echo $g > /tmp/sysinfo/model - - a=$(ip address | grep ^[0-9] | awk -F: '{print $2}' | sed "s/ //g" | grep '^[e]' | grep -v "@" | grep -v "\.") - b=$(echo "$a" | wc -l) - for i in $(seq 1 $b) + for i in $(ip address | grep -E 'eth[0-9]+' | awk -F ': ' '{print $2}' | xargs) do - c=$(echo "$a" | sed -n ${i}p) - ethtool -K $c rx-checksum on >/dev/null 2>&1 - ethtool -K $c tx-checksum-ip-generic on >/dev/null 2>&1 || ( - ethtool -K $c tx-checksum-ipv4 on >/dev/null 2>&1 - ethtool -K $c tx-checksum-ipv6 on >/dev/null 2>&1) - ethtool -K $c tx-scatter-gather on >/dev/null 2>&1 - ethtool -K $c gso on >/dev/null 2>&1 - ethtool -K $c tso on >/dev/null 2>&1 - ethtool -K $c ufo on >/dev/null 2>&1 + ( + ethtool -K "$i" rx-checksum on + ethtool -K "$i" tx-checksum-ip-generic on || { + ethtool -K "$i" tx-checksum-ipv4 on + ethtool -K "$i" tx-checksum-ipv6 on + } + ethtool -K "$i" tx-scatter-gather on + ethtool -K "$i" gso on + ethtool -K "$i" tso on + ethtool -K "$i" ufo on + ) >"/dev/null" 2>&1 done }