Elad Lahav wrote:
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
Is it possible that they're migrating due to the CPU being masked off
for a critical section of code in another process/thread? I think
everything gets booted off a CPU when it is being used for a mutex's
critical section. The IRQs are masked and routed to other CPUs until
the mutex is done and the caches are flushed again. Does this apply to
your test environment at all? I can't remember exactly where the
applicable code is, but I think it's around SMP.c or something to that
effect. Concurrency.c perhaps?
--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx
Please read the FAQ at http://kernelnewbies.org/FAQ