Thread (54 messages) 54 messages, 5 authors, 2016-07-12

Re: [PATCH 02/13] irq: Introduce IRQD_AFFINITY_MANAGED flag

From: Keith Busch <hidden>
Date: 2016-06-15 15:06:31
Also in: linux-nvme, linux-pci, lkml

On Wed, Jun 15, 2016 at 12:42:53PM +0200, Bart Van Assche wrote:
Today irqbalanced is responsible for deciding how to assign interrupts from
different adapters to CPU cores. Does the above mean that for adapters that
support multiple MSI-X interrupts the kernel will have full responsibility
for assigning interrupt vectors to CPU cores?
Hi Bart,

Right, the kernel would be responsible for assigning interrupt vectors to
cores. The kernel is already responsible for setting the affinity hint,
but we want direct control because we can do a better than irqbalance,
which has been a problem point for users.

Many adapters gain significant performance when irqbalance is using
"exact" hint policy. But that's not irqbalance's default setting, and
we don't necessarily want to enforce "exact" on the entire system when
only a subset of devices benefit from such a setup.
 
If two identical adapters are present in a system, will these generate the
same irq_affinity mask? Do you agree that interrupt vectors from different
adapters should be assigned to different CPU cores if enough CPU cores are
available? If so, which software layer will assign interrupt vectors from
different adapters to different CPU cores?
I think the idea is have the irq_affinity mask match the CPU mapping on
the submission side context associated with that particular vector. If
two identical adapters generate the same submission CPU mapping, I don't
think we can do better than matching irq_affinity masks.

Thanks,
Keith
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help