linux/kernel/irq
Thomas Gleixner cbf8699996 genirq: Let irq thread follow the effective hard irq affinity
In case of threaded interrupts the thread follows the affinity setting of
the hard interrupt. The related function uses the affinity mask which was
set by either from user space or via one of the kernel mechanisms. This
mask can be wider than the resulting effective affinity of the hard
interrupt. As a consequence the thread might become affine to a completely
different CPU.

Use the effective interrupt affinity if the architecture supports it, so
the hard interrupt and the thread stay on the same CPU.

Reported-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
2018-02-16 15:28:50 +01:00
..
affinity.c genirq/affinity: assign vectors to all possible CPUs 2018-01-12 11:01:38 -07:00
autoprobe.c genirq: Make legacy autoprobing work again 2018-02-01 11:09:40 +01:00
chip.c genirq: Make legacy autoprobing work again 2018-02-01 11:09:40 +01:00
cpuhotplug.c genirq/cpuhotplug: Add sanity check for effective affinity mask 2017-10-09 13:26:48 +02:00
debug.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/pmladek/printk 2018-02-01 13:36:15 -08:00
debugfs.c genirq: Introduce IRQD_CAN_RESERVE flag 2017-12-29 21:13:04 +01:00
devres.c irq/generic-chip: Provide devm_irq_setup_generic_chip() 2017-06-21 15:53:11 +02:00
dummychip.c Merge branch 'linus' into irq/core 2015-06-05 22:25:01 +02:00
generic-chip.c kernel/irq: Extend lockdep class for request mutex 2017-12-28 12:26:35 +01:00
handle.c There has been a fair amount of activity in the docs tree this time 2017-07-03 21:13:25 -07:00
internals.h genirq: Make legacy autoprobing work again 2018-02-01 11:09:40 +01:00
ipi.c genirq/ipi: Fixup checks against nr_cpu_ids 2017-08-20 10:49:05 +02:00
irq_sim.c genirq/irq_sim: Add a devres variant of irq_sim_init() 2017-08-16 16:40:02 +02:00
irqdesc.c arm64 updates for 4.15 2017-11-15 10:56:56 -08:00
irqdomain.c irqdomain: Kill CONFIG_IRQ_DOMAIN_DEBUG 2018-01-24 12:32:58 +01:00
Kconfig irqdomain: Kill CONFIG_IRQ_DOMAIN_DEBUG 2018-01-24 12:32:58 +01:00
Makefile Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2017-11-13 17:33:11 -08:00
manage.c genirq: Let irq thread follow the effective hard irq affinity 2018-02-16 15:28:50 +01:00
matrix.c irq/matrix: Spread interrupts on allocation 2018-01-18 11:38:41 +01:00
migration.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
msi.c genirq/msi, x86/vector: Prevent reservation mode for non maskable MSI 2017-12-29 21:13:05 +01:00
pm.c genirq/PM: Properly pretend disabled state when force resuming interrupts 2017-07-17 22:32:20 +02:00
proc.c Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2017-11-13 17:33:11 -08:00
resend.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
settings.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
spurious.c genirq: remove unneeded kallsyms include 2018-02-06 18:32:47 -08:00
timings.c irq/timings: Use lockdep to assert IRQs are disabled/enabled 2017-11-08 11:13:52 +01:00