Re: IRQ Affinity

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux