lkml.org 
[lkml]   [2017]   [Sep]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Subject[RFC PATCH v1 0/9] Support shared percpu interrupts; clean up MIPS hacks
Date
This series introduces support for percpu shared interrupts and makes
use of this support to clean up some hacks that have been used to
support such interrupts on MIPS.

- Patch 1 allows users of shared interrupts to opt into IRQ_NOAUTOEN
behaviour & avoid warnings from doing so.

- Patch 2 introduces support for shared percpu_devid interrupts.

- Patch 3 introduces a helper allowing users to detect whether an
interrupt is a percpu_devid interrupt or not, which is useful
during the transition phase where interrupts may be either.

- Patches 4 & 5 removes an ugly custom implementation of shared
interrupts between the MIPS cevt-r4k timer driver & users of
performance counters, in favor of using standard IRQF_SHARED &
multiple handlers.

- Patches 6 & 7 add percpu interrupt support to the MIPS perf &
cevt-r4k timer drivers respectively.

- Patch 8 configures the MIPS cop 0 count/compare, fast debug channel &
performance counter overflow interrupts as percpu_devid when they are
mapped by the irqchip-mips-cpu driver.

- Patch 9 removes a hack from the irqchip-mips-gic driver that was
used to enable & disable an interrupt across all CPUs, which is no
longer necessary with users of those interrupts using the percpu
interrupt APIs correctly. This mirrors patch 8 for systems where we
map the CPU local interrupts via the GIC.

There's a little more work necessary before this could go in - the
MIPS oprofile code needs adjusting to use the percpu interrupt APIs, as
does the fast debug channel driver.

Applies atop next-20170905.

Paul Burton (9):
genirq: Allow shared interrupt users to opt into IRQ_NOAUTOEN
genirq: Support shared per_cpu_devid interrupts
genirq: Introduce irq_is_percpu_devid()
MIPS: Remove perf_irq interrupt sharing fallback
MIPS: Remove perf_irq
MIPS: perf: percpu_devid interrupt support
MIPS: cevt-r4k: percpu_devid interrupt support
irqchip: mips-cpu: Set timer, FDC & perf interrupts percpu_devid
irqchip: mips-gic: Remove gic_all_vpes_local_irq_controller

arch/mips/include/asm/time.h | 1 -
arch/mips/kernel/cevt-r4k.c | 77 ++++++++++++-----------------
arch/mips/kernel/perf_event_mipsxx.c | 71 +++++++++++----------------
arch/mips/kernel/time.c | 9 ----
arch/mips/kernel/traps.c | 2 +-
arch/mips/oprofile/op_impl.h | 2 -
arch/mips/oprofile/op_model_loongson3.c | 39 +++++++--------
arch/mips/oprofile/op_model_mipsxx.c | 10 +---
drivers/irqchip/irq-mips-cpu.c | 9 +++-
drivers/irqchip/irq-mips-gic.c | 69 +++-----------------------
include/linux/interrupt.h | 2 +
include/linux/irqdesc.h | 8 +++
kernel/irq/chip.c | 8 +--
kernel/irq/handle.c | 8 ++-
kernel/irq/manage.c | 86 +++++++++++++++++++++++++--------
kernel/irq/settings.h | 5 ++
16 files changed, 189 insertions(+), 217 deletions(-)

--
2.14.1

\
 
 \ /
  Last update: 2017-09-08 01:26    [W:0.117 / U:0.072 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site