unbalanced interrupt distribution

Roger Oberholtzer roger at opq.se
Mon Jan 12 06:56:14 PST 2009


On Mon, 2009-01-12 at 04:57 -0800, Amit Jagtap wrote:
> Hi,
> 
> my server shows following in /proc/interrupts file - 
>            CPU0       CPU1       CPU2       CPU3
> 74:   23457427            0          0          0         PCI-MSI  eth0
> 82:        7504             0          0          0         PCI-MSI  eth1
> 
> 
> Can the above interrupt distribution lead to performance bottelneck in high
> load situtations?

My 2 cents worth:

Could be. However, I think the kernel puts all hardware interrupts on
one CPU. Non-hardware kernel and user process activity can be run on the
various CUPs. SVR4.2 Unix (UnixWare and Solaris?) allows assigning
specific hardware to specific CPUs. But then you can still get
bottlenecks unless you monitor things all the time. I would be curious
to know if there is any work underway on distributing hardware across
CPUs based on recent load. Of course, I am not sure it is really makes a
big difference in most cases. The hardware activity for a device that is
bound to a CPU is probably a relatively small part of the time spent
dealing with all the things a device can cause to happen. Once your
network data is in buffers, the other CPU kernel threads move it to
processes and the processes themselves run in other CPUs.

Roger Oberholtzer




More information about the Linux-users mailing list