Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save metajiji/33d32f0dedb49a512a0e to your computer and use it in GitHub Desktop.
Save metajiji/33d32f0dedb49a512a0e to your computer and use it in GitHub Desktop.
irq_balance_habrahabr.sh
#!/bin/sh
# checkbashisms irq_balance_habrahabr_POSIX.sh
# from http://habrahabr.ru/post/108240/
ncpus=$(grep -ciw ^processor /proc/cpuinfo)
[ $ncpus -gt 1 ] || exit 1
n=0
for irq in `awk '/eth/{gsub(":","",$0);print $1}' /proc/interrupts`; do
f="/proc/irq/$irq/smp_affinity"
[ -w "$f" ] || continue
cpu=$(($ncpus-($n%$ncpus)-1))
if [ $cpu -ge 0 ]; then
mask=$(printf %x $(echo $cpu | awk '{print 2^$0}'))
echo "Assign SMP affinity: eth queue $n, irq $irq, cpu $cpu, mask 0x$mask"
echo "$mask" > "$f"
n=$(($n+1))
fi
done
@metajiji
Copy link
Author

Now POSIX compliant.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment