2 NPROCS
="$(grep -c "^processor.
*:" /proc/cpuinfo)"
3 [ "$NPROCS" -gt 1 ] ||
exit
5 PROC_MASK
="$(( (1 << $NPROCS) - 1 ))"
9 local match
="$(grep -m 1 "$dev\$
" /proc/interrupts)"
15 for cur
in $
(seq 1 $NPROCS); do
30 val
="$(printf %x "$val")"
31 [ -n "$DEBUG" ] && echo "$file = $val"
35 packet_steering
="$(uci get "network.@globals
[0].packet_steering
")"
36 [ "$packet_steering" != 1 ] && exit 0
38 exec 512>/var
/lock
/smp_tune.lock
41 [ -e "/usr/libexec/platform/packet-steering.sh" ] && {
42 /usr
/libexec
/platform
/packet-steering.sh
46 for dev
in /sys
/class
/net
/*; do
47 [ -d "$dev" ] ||
continue
49 # ignore virtual interfaces
50 [ -n "$(ls "${dev}/" | grep '^lower_')" ] && continue
51 [ -d "${dev}/device" ] ||
continue
53 device
="$(readlink "${dev}/device
")"
54 device
="$(basename "$device")"
55 irq_cpu
="$(find_irq_cpu "$device")"
56 irq_cpu_mask
="$((1 << $irq_cpu))"
58 for q
in ${dev}/queues
/tx-
*; do
59 set_hex_val
"$q/xps_cpus" "$PROC_MASK"
62 # ignore dsa slave ports for RPS
63 subsys
="$(readlink "${dev}/device
/subsystem
")"
64 subsys
="$(basename "$subsys")"
65 [ "$subsys" = "mdio_bus" ] && continue
67 for q
in ${dev}/queues
/rx-
*; do
68 set_hex_val
"$q/rps_cpus" "$PROC_MASK"