All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 0/3] genirq: handling GIC per-cpu interrupts
@ 2011-09-23 16:03 ` Marc Zyngier
  0 siblings, 0 replies; 19+ messages in thread
From: Marc Zyngier @ 2011-09-23 16:03 UTC (permalink / raw)
  To: linux-arm-kernel, linux-kernel
  Cc: Bryan Huntsman, David Brown, Kukjin Kim, Magnus Damm, Paul Mundt,
	Thomas Gleixner, Tony Lindgren

The current GIC per-cpu interrupts (aka PPIs) suffer from a number of
problems:

- They use a completely separate scheme to handle the interrupts,
  mostly because the PPI concept doesn't really match the kernel view
  of an interrupt.
- PPIs can only be used by the timer code, unless we add more low-level
  assembly code.
- The local timer code can only be used by devices generating PPIs,
  and not SPIs.
- At least one platform (msm) has started implementing its own
  alternative scheme.
- Some low-level code gets duplicated, as usual...

The proposed solution is to handle the PPIs using the same path as
SPIs. A new core API is added to deal with per-cpu interrupts in a
less awkward way. The local timer code is updated to reflect these
changes.

The core API changes are based on an initial idea by Thomas Gleixner.

Tested on ARM Versatile Express (Cortex A15), ARM RealView PB11MP,
OMAP4 (Panda) and Tegra (Harmony). Patch series against next-20110923.

>From v2:
- Fixed !GENERIC_HARDIRQS build
- Fixed request_percpu_irq documentation

>From v1:
- General tidy-up after Thomas' review. I've kept the config option
  for the time being until we can sort out the anonymous union
  problem.

Marc Zyngier (3):
  genirq: add support for per-cpu dev_id interrupts
  ARM: gic: consolidate PPI handling
  ARM: gic, local timers: use the request_percpu_irq() interface

 arch/arm/common/Kconfig                           |    1 +
 arch/arm/common/gic.c                             |   38 +++-
 arch/arm/include/asm/entry-macro-multi.S          |    7 -
 arch/arm/include/asm/hardirq.h                    |    3 -
 arch/arm/include/asm/hardware/entry-macro-gic.S   |   19 +--
 arch/arm/include/asm/hardware/gic.h               |    1 -
 arch/arm/include/asm/localtimer.h                 |   19 +-
 arch/arm/include/asm/smp.h                        |    5 -
 arch/arm/include/asm/smp_twd.h                    |    2 +-
 arch/arm/kernel/irq.c                             |    3 -
 arch/arm/kernel/smp.c                             |   33 +----
 arch/arm/kernel/smp_twd.c                         |   47 +++++-
 arch/arm/mach-exynos4/include/mach/entry-macro.S  |    6 +-
 arch/arm/mach-exynos4/mct.c                       |    5 -
 arch/arm/mach-msm/board-msm8x60.c                 |   11 -
 arch/arm/mach-msm/include/mach/entry-macro-qgic.S |   73 +-------
 arch/arm/mach-msm/timer.c                         |   69 ++++---
 arch/arm/mach-omap2/include/mach/entry-macro.S    |   14 +--
 arch/arm/mach-shmobile/entry-intc.S               |    3 -
 arch/arm/mach-shmobile/include/mach/entry-macro.S |    3 -
 include/linux/interrupt.h                         |   40 +++-
 include/linux/irq.h                               |   16 ++-
 include/linux/irqdesc.h                           |    1 +
 kernel/irq/Kconfig                                |    4 +
 kernel/irq/chip.c                                 |   54 ++++++
 kernel/irq/internals.h                            |    2 +
 kernel/irq/irqdesc.c                              |   25 +++
 kernel/irq/manage.c                               |  206 ++++++++++++++++++++-
 kernel/irq/settings.h                             |    7 +
 29 files changed, 468 insertions(+), 249 deletions(-)



^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2011-09-30 11:08 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-09-23 16:03 [PATCH v3 0/3] genirq: handling GIC per-cpu interrupts Marc Zyngier
2011-09-23 16:03 ` Marc Zyngier
2011-09-23 16:03 ` [PATCH v3 1/3] genirq: add support for per-cpu dev_id interrupts Marc Zyngier
2011-09-23 16:03   ` Marc Zyngier
2011-09-29  5:56   ` Abhijeet Dharmapurikar
2011-09-29  5:56     ` Abhijeet Dharmapurikar
2011-09-30 11:08     ` Marc Zyngier
2011-09-30 11:08       ` Marc Zyngier
2011-09-23 16:03 ` [PATCH v3 2/3] ARM: gic: consolidate PPI handling Marc Zyngier
2011-09-23 16:03   ` Marc Zyngier
2011-09-28  0:59   ` Tony Lindgren
2011-09-23 16:03 ` [PATCH v3 3/3] ARM: gic, local timers: use the request_percpu_irq() interface Marc Zyngier
2011-09-23 16:03   ` Marc Zyngier
2011-09-26 20:18 ` [PATCH v3 0/3] genirq: handling GIC per-cpu interrupts David Brown
2011-09-26 20:18   ` David Brown
2011-09-27  0:11   ` David Brown
2011-09-27  0:11     ` David Brown
2011-09-27 10:21 ` Shawn Guo
2011-09-27 10:21   ` Shawn Guo

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.