It turned out to be the fault of the irqbalance service (user mode
daemon). I don't know exactly how it operates, but the balancing scheme
it employs is clearly sub-optimal.
Elad
Elad Lahav wrote:
Hello all,
I have a dual-processor Xeon machine with HyperThreading, for a total of
4 logical processors. The machine is equipped with 4 Gigabit NICs. I am
trying to set the IRQ affinity, so that each NIC is handled by a
different logical processor. I do that by writing 1, 2, 4 and 8 to the
respective entries in /proc/irq/IRQ#/smp_affinity.
After starting 4 processes, each sending packets via a different NIC, I
can see that the interrupts start migrating, despite the affinity.
Moreover, the affinity values change. Soon after starting the test, all
network interrupt end up on logical processors 2 and 3 (which, I
believe, are on the same physical processor).
Why won't the affinity hold? My suspect at this point is the
move_masked_irq() function, which I believe is the only other mechanism
for changing affinity, other than writing to the /proc entries.
Thanks,
Elad
--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx
Please read the FAQ at http://kernelnewbies.org/FAQ
--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx
Please read the FAQ at http://kernelnewbies.org/FAQ