|
|
Subscribe / Log in / New account

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


Copyright © 2019, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds