6bfd2d442a
- Core code: - Interrupt storm detection for the lockup watchdog: Lockups which are caused by interrupt storms are not easy to debug because there is no information about the events which make the lockup detector trigger. To make this more user friendly, provide an extenstion to interrupt statistics which allows to take snapshots and an interface to retrieve the delta to the snapshot. Use this new mechanism in the watchdog code to do a two stage lockup analysis by taking the snapshot and printing the deltas for the topmost active interrupts on the second trigger. Note: This contains both the interrupt and the watchdog changes as the latter depend on the former obviously. - Avoid summation loops in the /proc/interrupts output and use the global counter when possible - Skip suspended interrupts on CPU hotplug operations to ensure that they are not delivered before the system resumes the device drivers when coming out of suspend. - On CPU hot-unplug interrupts which are affine to the outgoing CPU are migrated to a different CPU in the affinity mask. This can fail when the CPUs have no vectors left. Instead of giving up try to migrate it to any online CPU and thereby breaking the affinity setting in order to prevent a stale device interrupt which targets an offline CPU - The usual small cleanups - Driver code: - Support for the RISCV AIA MSI controller - Make the interrupt allocation for the Loongson PCH controller more flexible to prevent vector exhaustion - The usual set of cleanups and fixes all over the place -----BEGIN PGP SIGNATURE----- iQJHBAABCgAxFiEEQp8+kY+LLUocC4bMphj1TA10mKEFAmZBCM0THHRnbHhAbGlu dXRyb25peC5kZQAKCRCmGPVMDXSYoeZHEACqMLN3K+1HyWflYtcTHJeYCjZLHS77 2tQeKaaskOA4W6dcGXPxMw5CHqAobHVQQMqgcJxhUdqQiOJnFFnrtCD7JtqM0hWK UORNbyeovuhAo+iJ0fTuS8p63H7vm2GIWwBLWJnOuChYv/6Yyx5Cald1skvyvbzL zePhiiAf5mkdmJMeT5wJSCqEWSRYOXsVAJ/0YAwFG3bKkJH3bmDo6SDJY02sXT5P pjbtD/0hum9wIVT4fNdYleHHQMdBdj9dLlcxXBikHq50mDMw7GxvjKiLcXmoerw3 rEBfVVJp3qpSofpNJZ3HH0ywcF3yUzq04/LPE9Tk2MoQ8NF0GzP8r9Ahke4B7cUj FysWNiAlC2IisEi6th313FZkTLx0zgewdsdEBTLt8eAE9TU0wamRbo99LZ8i/Qr3 hk7jV8DzL+EDQJLgl4p1iPJgA708eW17tbCxLEa15VKVV6P58miohmhx/IfPO2Gx FV1PPehtItsmiK/UoRtUCoFdFsqNQtOE+h8DWLyy8RDmhBqGbn9Ut4euXiQIF+rX WJKPFfslCTR39BrBcZnZeNsgOCN7tEfFRstzjzkey1DaeTGWtxmA5UGhpC2vT74y YyXluvZlgKr4S64ABmcqQj++hQLho0OQAih3uW5YVxt4VxEUcXYMJOsV1AQGpMjF UnewWH5opBQdfw== =jFLf -----END PGP SIGNATURE----- Merge tag 'irq-core-2024-05-12' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull interrupt subsystem updates from Thomas Gleixner: "Core code: - Interrupt storm detection for the lockup watchdog: Lockups which are caused by interrupt storms are not easy to debug because there is no information about the events which make the lockup detector trigger. To make this more user friendly, provide an extenstion to interrupt statistics which allows to take snapshots and an interface to retrieve the delta to the snapshot. Use this new mechanism in the watchdog code to do a two stage lockup analysis by taking the snapshot and printing the deltas for the topmost active interrupts on the second trigger. Note: This contains both the interrupt and the watchdog changes as the latter depend on the former obviously. - Avoid summation loops in the /proc/interrupts output and use the global counter when possible - Skip suspended interrupts on CPU hotplug operations to ensure that they are not delivered before the system resumes the device drivers when coming out of suspend. - On CPU hot-unplug interrupts which are affine to the outgoing CPU are migrated to a different CPU in the affinity mask. This can fail when the CPUs have no vectors left. Instead of giving up try to migrate it to any online CPU and thereby breaking the affinity setting in order to prevent a stale device interrupt which targets an offline CPU - The usual small cleanups Driver code: - Support for the RISCV AIA MSI controller - Make the interrupt allocation for the Loongson PCH controller more flexible to prevent vector exhaustion - The usual set of cleanups and fixes all over the place" * tag 'irq-core-2024-05-12' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (51 commits) irqchip/gic-v3-its: Remove BUG_ON in its_vpe_irq_domain_alloc cpuidle: Avoid explicit cpumask allocation on stack irqchip/sifive-plic: Avoid explicit cpumask allocation on stack irqchip/riscv-aplic-direct: Avoid explicit cpumask allocation on stack irqchip/loongson-eiointc: Avoid explicit cpumask allocation on stack irqchip/gic-v3-its: Avoid explicit cpumask allocation on stack irqchip/irq-bcm6345-l1: Avoid explicit cpumask allocation on stack cpumask: Introduce cpumask_first_and_and() irqchip/irq-brcmstb-l2: Avoid saving mask on shutdown genirq: Reuse irq_is_nmi() genirq/cpuhotplug: Retry with cpu_online_mask when migration fails genirq/cpuhotplug: Skip suspended interrupts when restoring affinity arm64: dts: st: Add interrupt parent to pinctrl on stm32mp251 arm64: dts: st: Add exti1 and exti2 nodes on stm32mp251 ARM: dts: stm32: List exti parent interrupts on stm32mp131 ARM: dts: stm32: List exti parent interrupts on stm32mp151 arm64: Kconfig.platforms: Enable STM32_EXTI for ARCH_STM32 irqchip/stm32-exti: Mark events reserved with RIF configuration check irqchip/stm32-exti: Skip secure events irqchip/stm32-exti: Convert driver to standard PM ... |
||
---|---|---|
.. | ||
Kconfig | ||
Makefile | ||
alphascale_asm9260-icoll.h | ||
exynos-combiner.c | ||
irq-al-fic.c | ||
irq-alpine-msi.c | ||
irq-apple-aic.c | ||
irq-armada-370-xp.c | ||
irq-aspeed-i2c-ic.c | ||
irq-aspeed-scu-ic.c | ||
irq-aspeed-vic.c | ||
irq-ath79-cpu.c | ||
irq-ath79-misc.c | ||
irq-atmel-aic-common.c | ||
irq-atmel-aic-common.h | ||
irq-atmel-aic.c | ||
irq-atmel-aic5.c | ||
irq-bcm2835.c | ||
irq-bcm2836.c | ||
irq-bcm6345-l1.c | ||
irq-bcm7038-l1.c | ||
irq-bcm7120-l2.c | ||
irq-brcmstb-l2.c | ||
irq-clps711x.c | ||
irq-crossbar.c | ||
irq-csky-apb-intc.c | ||
irq-csky-mpintc.c | ||
irq-davinci-cp-intc.c | ||
irq-digicolor.c | ||
irq-dw-apb-ictl.c | ||
irq-ftintc010.c | ||
irq-gic-common.c | ||
irq-gic-common.h | ||
irq-gic-pm.c | ||
irq-gic-realview.c | ||
irq-gic-v2m.c | ||
irq-gic-v3-its-fsl-mc-msi.c | ||
irq-gic-v3-its-pci-msi.c | ||
irq-gic-v3-its-platform-msi.c | ||
irq-gic-v3-its.c | ||
irq-gic-v3-mbi.c | ||
irq-gic-v3.c | ||
irq-gic-v4.c | ||
irq-gic.c | ||
irq-goldfish-pic.c | ||
irq-hip04.c | ||
irq-i8259.c | ||
irq-idt3243x.c | ||
irq-imgpdc.c | ||
irq-imx-gpcv2.c | ||
irq-imx-intmux.c | ||
irq-imx-irqsteer.c | ||
irq-imx-mu-msi.c | ||
irq-ingenic-tcu.c | ||
irq-ingenic.c | ||
irq-ixp4xx.c | ||
irq-jcore-aic.c | ||
irq-keystone.c | ||
irq-loongarch-cpu.c | ||
irq-loongson-eiointc.c | ||
irq-loongson-htpic.c | ||
irq-loongson-htvec.c | ||
irq-loongson-liointc.c | ||
irq-loongson-pch-lpc.c | ||
irq-loongson-pch-msi.c | ||
irq-loongson-pch-pic.c | ||
irq-lpc32xx.c | ||
irq-ls-extirq.c | ||
irq-ls-scfg-msi.c | ||
irq-ls1x.c | ||
irq-madera.c | ||
irq-mbigen.c | ||
irq-mchp-eic.c | ||
irq-meson-gpio.c | ||
irq-mips-cpu.c | ||
irq-mips-gic.c | ||
irq-mmp.c | ||
irq-mscc-ocelot.c | ||
irq-mst-intc.c | ||
irq-mtk-cirq.c | ||
irq-mtk-sysirq.c | ||
irq-mvebu-gicp.c | ||
irq-mvebu-icu.c | ||
irq-mvebu-odmi.c | ||
irq-mvebu-pic.c | ||
irq-mvebu-sei.c | ||
irq-mxs.c | ||
irq-nvic.c | ||
irq-omap-intc.c | ||
irq-ompic.c | ||
irq-or1k-pic.c | ||
irq-orion.c | ||
irq-owl-sirq.c | ||
irq-partition-percpu.c | ||
irq-pic32-evic.c | ||
irq-pruss-intc.c | ||
irq-qcom-mpm.c | ||
irq-rda-intc.c | ||
irq-realtek-rtl.c | ||
irq-renesas-intc-irqpin.c | ||
irq-renesas-irqc.c | ||
irq-renesas-rza1.c | ||
irq-renesas-rzg2l.c | ||
irq-riscv-aplic-direct.c | ||
irq-riscv-aplic-main.c | ||
irq-riscv-aplic-main.h | ||
irq-riscv-aplic-msi.c | ||
irq-riscv-imsic-early.c | ||
irq-riscv-imsic-platform.c | ||
irq-riscv-imsic-state.c | ||
irq-riscv-imsic-state.h | ||
irq-riscv-intc.c | ||
irq-sa11x0.c | ||
irq-sifive-plic.c | ||
irq-sl28cpld.c | ||
irq-sni-exiu.c | ||
irq-sp7021-intc.c | ||
irq-st.c | ||
irq-starfive-jh8100-intc.c | ||
irq-stm32-exti.c | ||
irq-sun4i.c | ||
irq-sun6i-r.c | ||
irq-sunxi-nmi.c | ||
irq-tb10x.c | ||
irq-tegra.c | ||
irq-ti-sci-inta.c | ||
irq-ti-sci-intr.c | ||
irq-ts4800.c | ||
irq-uniphier-aidet.c | ||
irq-versatile-fpga.c | ||
irq-vf610-mscm-ir.c | ||
irq-vic.c | ||
irq-vt8500.c | ||
irq-wpcm450-aic.c | ||
irq-xilinx-intc.c | ||
irq-xtensa-mx.c | ||
irq-xtensa-pic.c | ||
irq-zevio.c | ||
irqchip.c | ||
qcom-irq-combiner.c | ||
qcom-pdc.c | ||
spear-shirq.c |