0

I want to manually control a NIC's IRQ affinity in order to do some low-latency performance experiments. and I want to see on which CPU the NIC driver's interrupt service routine (ISR) resides.

On Fedora 19, I can see the the information on processes/threads by top command. There is an entry for each interrupt in the output of top. my NIC's name is em1 which is shown by ifconfig and the interrupt number is 76. I run "echo 20 > /proc/irq/76/smp_affinity", then I can see the following in the top results

"627 root -51 0 0 0 0 S 0.000 0.000 0:00.35 irq/76-em1 5"

and I know this ISR runs on CPU 5.

But on my newly installed Fedora 26, the top doesn't show such an entry. The kernel version for Fedora 26 is 4.11.8-300. On CentOS7 with kernel 3.10, I still cannot see this information.

How can I know where a particular ISR is. I doubt the top command doesn't show certain kernel threads?

Any response is highly appreciated.

Thank you

cwang.sh
  • 23
  • 3
  • This sounds a bit contraproductive. I know that modern CPI's in combination with modern OS' es are able to untie the fixed relation between ISR and CPU. Instead, the ISR can be serviced by an idle core. – MSalters Apr 19 '18 at 07:13
  • Yes, I agree. But in some cases, in order to achieve low latency performance, linux irqbalance should be disabled to avoid interrupts being scheduled onto a CPU which is doing time stringent tasks. – cwang.sh Apr 19 '18 at 07:55

0 Answers0