#! /usr/bin/bash
if [ $# -lt 1 ]; then
  echo "  pinirq: pin irq of specified device to last processor"
  echo "  Usage: sudo ./pinirq device_name"
  echo "  Example: sudo ./pinirq eno1"
  exit
fi  
irqnum=$(cat /proc/interrupts | grep $1 | tr ":" "\n" | head -1 | tr -d ' ' )
if [ ! -d /proc/irq/$irqnum/$1 ]; then
  echo  Device $1 not found!
  exit
fi
cores=$(grep -c 'cpu[0-9]' /proc/stat)
coresm1=cores-1
declare -i NewMask=2**coresm1
echo Cores: $cores
echo Old CPU Mask: $(cat /proc/irq/$irqnum/smp_affinity)
echo $NewMask > /proc/irq/$irqnum/smp_affinity
CPUMask=$(cat /proc/irq/$irqnum/smp_affinity)
echo "Set device "$1" IRQ" $irqnum "CPU mask to" $CPUMask