Provide core API for NMIs
From: | Julien Thierry <julien.thierry-AT-arm.com> | |
To: | linux-kernel-AT-vger.kernel.org | |
Subject: | [PATCH v6 0/4] Provide core API for NMIs | |
Date: | Thu, 31 Jan 2019 14:53:57 +0000 | |
Message-ID: | <1548946441-38546-1-git-send-email-julien.thierry@arm.com> | |
Cc: | tglx-AT-linutronix.de, peterz-AT-infradead.org, marc.zyngier-AT-arm.com, mingo-AT-kernel.org, Julien Thierry <julien.thierry-AT-arm.com> | |
Archive-link: | Article |
Hi, This patch series provides a way for irqchips to define some IRQs as NMIs. Updating this series as it is needed for the arm64 pseudo-NMI which we are considering to merge (I'll post a new version shortly). Changes since v5[1]: - Added Marc's Acked-by, Reviewed-by tags - Fixed locking bug in ready_percpu_nmi() - Renamed ready_percpu_nmi() to prepare_percpu_nmi() - Added documentation prepare_percpu_nmi() and teardown_percpu_nmi() Changes since v4[2]: - Rebased on v5.0-rc4 - Modified comment for request_percpu_nmi() to detail the use of per CPU NMIs a bit more Changes since v3[3]: - Rebased on v4.20-rc2 Changes since v2[4]: - Fix ARM build error reported by kbuild bot - Fix documentation warnings reported by kbuild bot Changes since v1[5]: - Rebased to v4.19-rc1 - Fix some coding style issues Changes since RFC[6]: - Rebased to v4.18-rc6 - Remove disable_nmi, one should call disable_nmi_nosync instead - Remove code related to affinity balancing from NMI functions - Require PERCPU configuration for NMIs [1] https://lkml.org/lkml/2019/1/28/541 [2] https://lkml.org/lkml/2018/11/12/2113 [3] https://lkml.org/lkml/2018/8/31/173 [4] https://lkml.org/lkml/2018/8/28/661 [5] https://lkml.org/lkml/2018/7/24/321 [6] https://lkml.org/lkml/2018/7/9/768 Cheers, Julien --> Julien Thierry (4): genirq: Provide basic NMI management for interrupt lines genirq: Provide NMI management for percpu_devid interrupts genirq: Provide NMI handlers irqdesc: Add domain handler for NMIs include/linux/interrupt.h | 18 +++ include/linux/irq.h | 10 ++ include/linux/irqdesc.h | 5 + kernel/irq/chip.c | 54 +++++++ kernel/irq/debugfs.c | 6 +- kernel/irq/internals.h | 2 + kernel/irq/irqdesc.c | 35 ++++ kernel/irq/manage.c | 405 +++++++++++++++++++++++++++++++++++++++++++++- 8 files changed, 532 insertions(+), 3 deletions(-) -- 1.9.1