linux/kernel/irq
Thomas Gleixner 34c3d9819f genirq/affinity: Provide smarter irq spreading infrastructure
The current irq spreading infrastructure is just looking at a cpumask and
tries to spread the interrupts over the mask. Thats suboptimal as it does
not take numa nodes into account.

Change the logic so the interrupts are spread across numa nodes and inside
the nodes. If there are more cpus than vectors per node, then we set the
affinity to several cpus. If HT siblings are available we take that into
account and try to set all siblings to a single vector.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Christoph Hellwig <hch@lst.de>
Cc: axboe@fb.com
Cc: keith.busch@intel.com
Cc: agordeev@redhat.com
Cc: linux-block@vger.kernel.org
Link: http://lkml.kernel.org/r/1473862739-15032-3-git-send-email-hch@lst.de
2016-09-14 22:11:08 +02:00
..
affinity.c genirq/affinity: Provide smarter irq spreading infrastructure 2016-09-14 22:11:08 +02:00
autoprobe.c
chip.c genirq: Correctly configure the trigger on chained interrupts 2016-08-17 11:29:31 +01:00
cpuhotplug.c genirq: Make the cpuhotplug migration code less noisy 2015-10-22 14:34:57 +02:00
debug.h
devres.c genirq: devres: Fix testing return value of request_any_context_irq() 2015-05-13 10:47:37 +02:00
dummychip.c Merge branch 'linus' into irq/core 2015-06-05 22:25:01 +02:00
generic-chip.c genirq: Add chip_[suspend|resume] PM support to irq_chip 2015-07-27 08:09:38 +02:00
handle.c genirq: Add untracked irq handler 2016-06-18 10:00:55 +02:00
internals.h Merge branch 'irq/for-block' into irq/core 2016-07-04 12:26:05 +02:00
ipi.c genirq: Fix missing irq allocation affinity hint 2016-07-19 10:49:47 +02:00
irqdesc.c genirq: Use affinity hint in irqdesc allocation 2016-07-04 12:25:13 +02:00
irqdomain.c irqdomain: Fix irq_domain_alloc_irqs_recursive() error handling 2016-07-11 17:23:48 +02:00
Kconfig genirq: Add GENERIC_IRQ_IPI Kconfig symbol 2016-02-25 10:56:55 +01:00
Makefile genirq: Add a helper to spread an affinity mask for MSI/MSI-X vectors 2016-07-04 12:25:14 +02:00
manage.c genirq: Fix potential memleak when failing to get irq pm 2016-08-22 11:22:44 +02:00
migration.c genirq: Remove bogus restriction in irq_move_mask_irq() 2015-06-20 19:05:14 +02:00
msi.c genirq/msi: Add cpumask allocation to alloc_msi_entry 2016-09-14 22:11:08 +02:00
pm.c Merge branches 'irq-urgent-for-linus' and 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2015-11-15 09:30:48 -08:00
proc.c Merge branch 'irq/for-block' into irq/core 2016-07-04 12:26:05 +02:00
resend.c genirq: Remove irq argument from irq flow handlers 2015-09-16 15:47:51 +02:00
settings.h genirq: Add flag to force mask in disable_irq[_nosync]() 2015-10-11 11:33:42 +02:00
spurious.c genirq: Use a common macro to go through the actions list 2016-02-15 00:07:34 +01:00