target/rockchip: rk33xx move net-smp-affinity to board/init.sh

This commit is contained in:
jjm2473 2023-03-16 11:27:13 +08:00
parent 3adec8bfd1
commit 6a16ed4465
4 changed files with 54 additions and 41 deletions

View File

@ -1,39 +0,0 @@
#!/bin/sh
[ "$ACTION" = add ] || exit
get_device_irq() {
local device="$1"
local line
local seconds
for seconds in $(seq 0 9); do
line=$(grep -m 1 "${device}\$" /proc/interrupts) && break
sleep 1
done
echo ${line} | sed 's/:.*//'
}
set_interface_core() {
local core_mask="$1"
local interface="$2"
local device="$3"
[ -z "${device}" ] && device="$interface"
local irq=$(get_device_irq "$device")
echo "${core_mask}" > /proc/irq/${irq}/smp_affinity
}
case "$(board_name)" in
friendlyarm,nanopi-r2s)
set_interface_core 2 "eth0"
set_interface_core 4 "eth1" "xhci-hcd:usb3"
;;
friendlyarm,nanopi-r4se|\
friendlyarm,nanopi-r4s)
set_interface_core 10 "eth0"
set_interface_core 20 "eth1"
;;
esac

View File

@ -0,0 +1,52 @@
#!/bin/sh
. /lib/functions.sh
set_iface_cpumask() {
local core_mask="$1"
local interface="$2"
local device="$3"
local irq
local seconds
[ -z "${device}" ] && device="$interface"
ip link set dev "$interface" up
for seconds in $(seq 0 2); do
irq=$(grep -m1 " ${device}\$" /proc/interrupts | sed -n -e 's/^ *\([^ :]\+\):.*$/\1/p')
if [ -n "${irq}" ]; then
echo "${core_mask}" > /proc/irq/${irq}/smp_affinity
return 0
fi
sleep 1
done
}
wait_for_iface() {
local interface="$1"
local seconds
for seconds in $(seq 0 2); do
[ -e "/sys/class/net/$interface" ] && return 0
sleep 1
done
}
board_set_iface_smp_affinity() {
case $(board_name) in
friendlyarm,nanopi-r2s)
set_iface_cpumask 2 "eth0"
set_iface_cpumask 4 "eth1" "xhci-hcd:usb3"
;;
friendlyarm,nanopi-r4se|\
friendlyarm,nanopi-r4s)
set_iface_cpumask 10 "eth0"
set_iface_cpumask 20 "eth1"
;;
esac
}
board_name | grep -qF 'friendlyarm,nanopi-r' || exit 0
wait_for_iface eth1
board_set_iface_smp_affinity

View File

@ -2,7 +2,7 @@
type 'board_name' >/dev/null 2>/dev/null || . /lib/functions.sh
export_ota_url() {
local board="$(board_name)"
local board="$(board_name)"
case "$board" in
friendlyarm,nanopi-r2s|\
friendlyarm,nanopi-r4s|\

View File

@ -2,7 +2,7 @@
type 'board_name' >/dev/null 2>/dev/null || . /lib/functions.sh
export_ota_url() {
local board="$(board_name)"
local board="$(board_name)"
case "$board" in
fastrhino,r66s|\
fastrhino,r68s)