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 [EMAIL PROTECTED]
Please read the FAQ at http://kernelnewbies.org/FAQ




--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to [EMAIL PROTECTED]
Please read the FAQ at http://kernelnewbies.org/FAQ

Reply via email to