diff options
author | Grygorii Strashko <[email protected]> | 2015-12-10 21:18:20 +0200 |
---|---|---|
committer | Bjorn Helgaas <[email protected]> | 2016-01-06 16:08:02 -0600 |
commit | 8ff0ef996ca00028519c70e8d51d32bd37eb51dc (patch) | |
tree | 44f51fc6086caf0c4f2971de66356d5334d847c2 /tools/perf/scripts/python/netdev-times.py | |
parent | 1ec218373b8ebda821aec00bb156a9c94fad9cd4 (diff) |
PCI: host: Mark PCIe/PCI (MSI) IRQ cascade handlers as IRQF_NO_THREAD
On -RT and if kernel is booting with "threadirqs" cmd line parameter,
PCIe/PCI (MSI) IRQ cascade handlers (like dra7xx_pcie_msi_irq_handler())
will be forced threaded and, as result, will generate warnings like this:
WARNING: CPU: 1 PID: 82 at kernel/irq/handle.c:150 handle_irq_event_percpu+0x14c/0x174()
irq 460 handler irq_default_primary_handler+0x0/0x14 enabled interrupts
Backtrace:
(warn_slowpath_common) from (warn_slowpath_fmt+0x38/0x40)
(warn_slowpath_fmt) from (handle_irq_event_percpu+0x14c/0x174)
(handle_irq_event_percpu) from (handle_irq_event+0x84/0xb8)
(handle_irq_event) from (handle_simple_irq+0x90/0x118)
(handle_simple_irq) from (generic_handle_irq+0x30/0x44)
(generic_handle_irq) from (dra7xx_pcie_msi_irq_handler+0x7c/0x8c)
(dra7xx_pcie_msi_irq_handler) from (irq_forced_thread_fn+0x28/0x5c)
(irq_forced_thread_fn) from (irq_thread+0x128/0x204)
This happens because all of them invoke generic_handle_irq() from the
requested handler. generic_handle_irq() grabs raw_locks and thus needs to
run in raw-IRQ context.
This issue was originally reproduced on TI dra7-evem, but, as was
identified during discussion [1], other hosts can also suffer from this
issue. Fix all them at once by marking PCIe/PCI (MSI) IRQ cascade handlers
IRQF_NO_THREAD explicitly.
[1] http://lkml.kernel.org/r/[email protected]
[bhelgaas: add stable tag, fix typos]
Signed-off-by: Grygorii Strashko <[email protected]>
Signed-off-by: Bjorn Helgaas <[email protected]>
Acked-by: Lucas Stach <[email protected]> (for imx6)
CC: [email protected]
CC: Kishon Vijay Abraham I <[email protected]>
CC: Jingoo Han <[email protected]>
CC: Kukjin Kim <[email protected]>
CC: Krzysztof Kozlowski <[email protected]>
CC: Richard Zhu <[email protected]>
CC: Thierry Reding <[email protected]>
CC: Stephen Warren <[email protected]>
CC: Alexandre Courbot <[email protected]>
CC: Simon Horman <[email protected]>
CC: Pratyush Anand <[email protected]>
CC: Michal Simek <[email protected]>
CC: "Sören Brinkmann" <[email protected]>
CC: Sebastian Andrzej Siewior <[email protected]>
Diffstat (limited to 'tools/perf/scripts/python/netdev-times.py')
0 files changed, 0 insertions, 0 deletions