网卡中断绑定cpu亲核性

#param1: dev name
#param2.3.4..: corenum

#examle: set_affinity eth1 0 1 2 3 4

#just support single core ->one irq, not support multi-core -> one irq

set_affinity(){
params=$@

core_max=`cat /proc/cpuinfo |grep -c processor`
echo "coremask max is $core_max"

argc=(${params// / })

for dir in rxtx TxRx
do
    irq_nums=`cat /proc/interrupts | grep -c $1-$dir`
    corenum_counts=$[$#-1]
    if [ $coremask_counts -lt $irq_nums ]; then
         echo "core params($corenum_counts) must >= irq_nums($irq_nums)."
        return
    fi
    for ((i = 1; i <= $irq_nums; i ++))
    do
        irq_num_tmp=`cat /proc/interrupts | grep $1-$dir | awk -F: '{print $1}' | sed -n $i'p'`
        if [ -n  "$irq_num_tmp" ]; then
            #remove space
            irq_num=`echo ${irq_num_tmp// /}`

            if [ ${argc[i]} -lt $corenum_max ]; then
                echo "echo ${argc[i]} > /proc/irq/$irq_num/smp_affinity_list"
                echo ${argc[i]} > /proc/irq/$irq_num/smp_affinity_list
            fi
        fi
    done
done
}

你可能感兴趣的:(网卡中断绑定cpu亲核性)