Page 1 of 1

inconsistent IRQ cpu affinity behavior

Posted: 2020/04/14 23:07:34
by lieting
Hi,

I am running CentOS 7.5.1804. I am seeing inconsistent reporting of cpu affinity with network interrupts. Here is an example:

/proc/interrupts shows that irq-387 lands on CPU1:

[root@hostname]# egrep "^ 387:|CPU" /proc/interrupts | awk '{print $1,$2,$3,$4,$5,$5}'
CPU0 CPU1 CPU2 CPU3 CPU4 CPU4
387: 0 24302 0 0 0

But /proc/irq/387/status shows it should be on CPU0:

[root@hostname]# cat /proc/irq/387/smp_affinity_list
0

Am I interpreting them wrong?

Thanks,

Lieting

Re: inconsistent IRQ cpu affinity behavior

Posted: 2020/04/14 23:56:03
by TrevorH
I am running CentOS 7.5.1804.
Which has been unsupported since the release of 7.6 in October that year. And 7.7 came out in August 2019 and 7.8 is now in the CR repo. You need to update your system to at least 7.7 by running yum update or to what will be 7.8 by using yum --enablerepo=cr update

And a 0 in that field probably means something special. It should be a 1 set on for each cpu that can be used. According to https://www.kernel.org/doc/Documentatio ... finity.txt it says "It's not allowed to turn off all CPUs" so a zero in that field sounds like it's invalid to me. Since it appears that you have 6 cpu's, that field should be a 6 bit long field and allowing it to run on all cpus would mean it had a value of 0x3f. To restrict it to only cpu 0 it should say 0x01.