Messages in this thread |  | | From | Marc Zyngier <> | Subject | [PATCH v3 0/3] genirq: Managed affinity fixes | Date | Tue, 5 Apr 2022 19:50:37 +0100 |
| |
John (and later on David) reported[1] a while ago that booting with maxcpus=1, managed affinity devices would fail to get the interrupts that were associated with offlined CPUs.
Similarly, Xiongfeng reported[2] that the GICv3 ITS would sometime use non-housekeeping CPUs instead of the affinity that was passed down as a parameter.
[1] can be fixed by not trying to activate these interrupts if no CPU that can satisfy the affinity is present (a patch addressing this was already posted[3])
[2] is a consequence of affinities containing non-online CPUs being passed down to the interrupt controller driver and the ITS driver trying to paper over that by ignoring the affinity parameter and doing its own (stupid) thing. It would be better to (a) get the core code to remove the offline CPUs from the affinity mask at all times, and (b) fix the drivers so that they can trust the core code not to trip them.
This small series, based on 5.18-rc1, addresses the above.
Thanks,
M.
From v2 [4]: - Rebased on 5.18-rc1
[1] https://lore.kernel.org/r/78615d08-1764-c895-f3b7-bfddfbcbdfb9@huawei.com [2] https://lore.kernel.org/r/20220124073440.88598-1-wangxiongfeng2@huawei.com [3] https://lore.kernel.org/r/20220307190625.254426-1-maz@kernel.org [4] https://lore.kernel.org/r/20220321193608.975495-1-maz@kernel.org
Marc Zyngier (3): genirq/msi: Shutdown managed interrupts with unsatifiable affinities genirq: Always limit the affinity to online CPUs irqchip/gic-v3: Always trust the managed affinity provided by the core code
drivers/irqchip/irq-gic-v3-its.c | 2 +- kernel/irq/manage.c | 25 +++++++++++++++++-------- kernel/irq/msi.c | 15 +++++++++++++++ 3 files changed, 33 insertions(+), 9 deletions(-)
-- 2.34.1
|  |