On Sun, 2004-08-29 at 16:42 -0400, Jeff Garzik wrote:
Does the kernel scheduler notice when a CPU spends a lot of time doing interrupt processing?
For many network configurations you get the best cache affinity, etc. if you lock network interrupts to a single CPU. However, on a box with high network load, that could mean that that CPU is spending more time processing interrupts than doing Real Work(tm).
Will the scheduler "notice" this, and increasingly schedule processes away from the interrupt-heavy CPU?
Nope, not explicitly anyhow.
Implicitly, at least, the load balancer will ensure that the runnable
processes on the processor do not get "backed up" due to the delayed
processing but you will still have the balanced minimum number of
processes there.
I don't know whether the answer is to use cpu affinity and not schedule
processes on that processor when you bind interrupts to it, or an
automatic algorithm in the load balance for doing it, but that is a neat
idea.