* [patch 0/2] ARM: Allow forced irq threading @ 2013-02-14 20:53 Thomas Gleixner 2013-02-14 20:53 ` [patch 1/2] arm: Mark pmu interupt IRQF_NO_THREAD Thomas Gleixner 2013-02-14 20:53 ` [patch 2/2] arm: Allow forced irq threading Thomas Gleixner 0 siblings, 2 replies; 12+ messages in thread From: Thomas Gleixner @ 2013-02-14 20:53 UTC (permalink / raw) To: linux-arm-kernel Forced irq threading is a prerequisite for RT and a nice debug feature (enabled via commandline option) in mainline. The following series adds the tiny missing pieces to enable this on the arm architecture. Thanks, tglx ^ permalink raw reply [flat|nested] 12+ messages in thread
* [patch 1/2] arm: Mark pmu interupt IRQF_NO_THREAD 2013-02-14 20:53 [patch 0/2] ARM: Allow forced irq threading Thomas Gleixner @ 2013-02-14 20:53 ` Thomas Gleixner 2013-02-15 9:51 ` Will Deacon 2013-02-14 20:53 ` [patch 2/2] arm: Allow forced irq threading Thomas Gleixner 1 sibling, 1 reply; 12+ messages in thread From: Thomas Gleixner @ 2013-02-14 20:53 UTC (permalink / raw) To: linux-arm-kernel An embedded and charset-unspecified text was scrubbed... Name: arm-mark-pmu-interupt-no-thread.patch URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20130214/05d13106/attachment.ksh> ^ permalink raw reply [flat|nested] 12+ messages in thread
* [patch 1/2] arm: Mark pmu interupt IRQF_NO_THREAD 2013-02-14 20:53 ` [patch 1/2] arm: Mark pmu interupt IRQF_NO_THREAD Thomas Gleixner @ 2013-02-15 9:51 ` Will Deacon 2013-08-12 19:52 ` Sebastian Andrzej Siewior 0 siblings, 1 reply; 12+ messages in thread From: Will Deacon @ 2013-02-15 9:51 UTC (permalink / raw) To: linux-arm-kernel On Thu, Feb 14, 2013 at 08:53:52PM +0000, Thomas Gleixner wrote: > PMU interrupts must not be threaded. > > Signed-off-by: Thomas Gleixner <tglx@linutronix.de> > --- > arch/arm/kernel/perf_event_cpu.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > Index: linux-2.6/arch/arm/kernel/perf_event_cpu.c > =================================================================== > --- linux-2.6.orig/arch/arm/kernel/perf_event_cpu.c > +++ linux-2.6/arch/arm/kernel/perf_event_cpu.c > @@ -118,7 +118,8 @@ static int cpu_pmu_request_irq(struct ar > continue; > } > > - err = request_irq(irq, handler, IRQF_NOBALANCING, "arm-pmu", > + err = request_irq(irq, handler, > + IRQF_NOBALANCING | IRQF_NO_THREAD, "arm-pmu", > cpu_pmu); > if (err) { > pr_err("unable to request IRQ%d for ARM PMU counters\n", > > Yup, we certainly don't want these to be threaded! Cheers, I'll add this to my perf queue. Will ^ permalink raw reply [flat|nested] 12+ messages in thread
* [patch 1/2] arm: Mark pmu interupt IRQF_NO_THREAD 2013-02-15 9:51 ` Will Deacon @ 2013-08-12 19:52 ` Sebastian Andrzej Siewior 2013-08-13 11:11 ` Will Deacon 0 siblings, 1 reply; 12+ messages in thread From: Sebastian Andrzej Siewior @ 2013-08-12 19:52 UTC (permalink / raw) To: linux-arm-kernel On Fri, Feb 15, 2013 at 09:51:53AM +0000, Will Deacon wrote: > Yup, we certainly don't want these to be threaded! Cheers, I'll add this to > my perf queue. I don't see this in v3.10. Is there a problem with this patch? > Will Sebastian ^ permalink raw reply [flat|nested] 12+ messages in thread
* [patch 1/2] arm: Mark pmu interupt IRQF_NO_THREAD 2013-08-12 19:52 ` Sebastian Andrzej Siewior @ 2013-08-13 11:11 ` Will Deacon 2013-08-14 9:52 ` Sebastian Andrzej Siewior 0 siblings, 1 reply; 12+ messages in thread From: Will Deacon @ 2013-08-13 11:11 UTC (permalink / raw) To: linux-arm-kernel On Mon, Aug 12, 2013 at 08:52:55PM +0100, Sebastian Andrzej Siewior wrote: > On Fri, Feb 15, 2013 at 09:51:53AM +0000, Will Deacon wrote: > > Yup, we certainly don't want these to be threaded! Cheers, I'll add this to > > my perf queue. > > I don't see this in v3.10. Is there a problem with this patch? Nope, I was just waiting for the discussion to die down around the kconfig change in the second patch. Probably best to submit both to Russell's patch system[1], with my ack on this one: Acked-by: Will Deacon <will.deacon@arm.com> Will [1] Add a "KernelVersion: 3.11-rc5" line to the patch, then git send-email it to patches at arm.linux.org.uk. ^ permalink raw reply [flat|nested] 12+ messages in thread
* [patch 1/2] arm: Mark pmu interupt IRQF_NO_THREAD 2013-08-13 11:11 ` Will Deacon @ 2013-08-14 9:52 ` Sebastian Andrzej Siewior 0 siblings, 0 replies; 12+ messages in thread From: Sebastian Andrzej Siewior @ 2013-08-14 9:52 UTC (permalink / raw) To: linux-arm-kernel On Tue, Aug 13, 2013 at 12:11:17PM +0100, Will Deacon wrote: > Probably best to submit both to Russell's patch system[1], with my ack on > this one: Okay, will do. Thanks. > > Will Sebastian ^ permalink raw reply [flat|nested] 12+ messages in thread
* [patch 2/2] arm: Allow forced irq threading 2013-02-14 20:53 [patch 0/2] ARM: Allow forced irq threading Thomas Gleixner 2013-02-14 20:53 ` [patch 1/2] arm: Mark pmu interupt IRQF_NO_THREAD Thomas Gleixner @ 2013-02-14 20:53 ` Thomas Gleixner 2013-02-14 21:49 ` Russell King - ARM Linux 1 sibling, 1 reply; 12+ messages in thread From: Thomas Gleixner @ 2013-02-14 20:53 UTC (permalink / raw) To: linux-arm-kernel An embedded and charset-unspecified text was scrubbed... Name: arm-allow-irq-threading.patch URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20130214/c10f3922/attachment.ksh> ^ permalink raw reply [flat|nested] 12+ messages in thread
* [patch 2/2] arm: Allow forced irq threading 2013-02-14 20:53 ` [patch 2/2] arm: Allow forced irq threading Thomas Gleixner @ 2013-02-14 21:49 ` Russell King - ARM Linux 2013-02-14 22:04 ` Thomas Gleixner 0 siblings, 1 reply; 12+ messages in thread From: Russell King - ARM Linux @ 2013-02-14 21:49 UTC (permalink / raw) To: linux-arm-kernel On Thu, Feb 14, 2013 at 08:53:53PM -0000, Thomas Gleixner wrote: > All timer interrupts and the perf interrupt are marked NO_THREAD, so > its safe to allow forced interrupt threading. What effect does this have on IRQ latency, particularly on the slower CPUs? If it adds to the IRQ latency, then it must be conditional; there are platforms where IRQ latency is important for things like network devices to keep up (particularly the SMC NICs). ^ permalink raw reply [flat|nested] 12+ messages in thread
* [patch 2/2] arm: Allow forced irq threading 2013-02-14 21:49 ` Russell King - ARM Linux @ 2013-02-14 22:04 ` Thomas Gleixner 2013-08-12 20:03 ` [PATCH 2/2 v2] " Sebastian Andrzej Siewior 0 siblings, 1 reply; 12+ messages in thread From: Thomas Gleixner @ 2013-02-14 22:04 UTC (permalink / raw) To: linux-arm-kernel On Thu, 14 Feb 2013, Russell King - ARM Linux wrote: > On Thu, Feb 14, 2013 at 08:53:53PM -0000, Thomas Gleixner wrote: > > All timer interrupts and the perf interrupt are marked NO_THREAD, so > > its safe to allow forced interrupt threading. > > What effect does this have on IRQ latency, particularly on the slower CPUs? > > If it adds to the IRQ latency, then it must be conditional; there are > platforms where IRQ latency is important for things like network devices > to keep up (particularly the SMC NICs). It does not affect anything unless you add "threadirqs" to the kernel command line. This command line argument puts the kernel into forced irq threading mode. Otherwise it just works as now. And yes, if enabled on the command line it adds latency due to the delayed invocation of the handler in the thread. Though for mainline this is primary a debug mechanism where you can morph the kernel explosion in the interrupt handler into a takedown of the handler thread instead of crashing the machine completely. Now on RT we force this and I can tell you that even on slow machines with SMC NICs the overhead seems to be in a range where these systems can cope with. Of course, if you tweak the scheduling params of the irq thread low enough you can run into problematic situations. But that's not an ARM specific problem, that's a general problem of configuring a RT system. Thanks, tglx ^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 2/2 v2] arm: Allow forced irq threading 2013-02-14 22:04 ` Thomas Gleixner @ 2013-08-12 20:03 ` Sebastian Andrzej Siewior 2013-08-14 10:08 ` Sekhar Nori 0 siblings, 1 reply; 12+ messages in thread From: Sebastian Andrzej Siewior @ 2013-08-12 20:03 UTC (permalink / raw) To: linux-arm-kernel From: Thomas Gleixner <tglx@linutronix.de> All timer interrupts and the perf interrupt are marked NO_THREAD, so its safe to allow forced interrupt threading. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- On Thu, Feb 14, 2013 at 11:04:48PM +0100, Thomas Gleixner wrote: > On Thu, 14 Feb 2013, Russell King - ARM Linux wrote: > > > What effect does this have on IRQ latency, particularly on the slower CPUs? > > It does not affect anything unless you add "threadirqs" to the kernel > command line. This command line argument puts the kernel into forced > irq threading mode. Otherwise it just works as now. I reposted the patch since it no longer applies clean on v3.11-rc5. From what tglx explained, I don't think there are any outstanding issues, are there? arch/arm/Kconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 43594d5..405e4c0 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -20,6 +20,7 @@ config ARM select GENERIC_STRNCPY_FROM_USER select GENERIC_STRNLEN_USER select HARDIRQS_SW_RESEND + select IRQ_FORCED_THREADING select HAVE_ARCH_JUMP_LABEL if !XIP_KERNEL select HAVE_ARCH_KGDB select HAVE_ARCH_SECCOMP_FILTER -- 1.8.4.rc1 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 2/2 v2] arm: Allow forced irq threading 2013-08-12 20:03 ` [PATCH 2/2 v2] " Sebastian Andrzej Siewior @ 2013-08-14 10:08 ` Sekhar Nori 2013-08-14 14:43 ` [PATCH 2/2 v3] " Sebastian Andrzej Siewior 0 siblings, 1 reply; 12+ messages in thread From: Sekhar Nori @ 2013-08-14 10:08 UTC (permalink / raw) To: linux-arm-kernel On Monday 12 August 2013 08:03 PM, Sebastian Andrzej Siewior wrote: > From: Thomas Gleixner <tglx@linutronix.de> > > All timer interrupts and the perf interrupt are marked NO_THREAD, so > its safe to allow forced interrupt threading. > > Signed-off-by: Thomas Gleixner <tglx@linutronix.de> > Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> > --- > On Thu, Feb 14, 2013 at 11:04:48PM +0100, Thomas Gleixner wrote: >> On Thu, 14 Feb 2013, Russell King - ARM Linux wrote: >> >>> What effect does this have on IRQ latency, particularly on the slower CPUs? >> >> It does not affect anything unless you add "threadirqs" to the kernel >> command line. This command line argument puts the kernel into forced >> irq threading mode. Otherwise it just works as now. > > I reposted the patch since it no longer applies clean on v3.11-rc5. From what > tglx explained, I don't think there are any outstanding issues, are there? > > arch/arm/Kconfig | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig > index 43594d5..405e4c0 100644 > --- a/arch/arm/Kconfig > +++ b/arch/arm/Kconfig > @@ -20,6 +20,7 @@ config ARM > select GENERIC_STRNCPY_FROM_USER > select GENERIC_STRNLEN_USER > select HARDIRQS_SW_RESEND > + select IRQ_FORCED_THREADING Please add in alphabetic sorted order. > select HAVE_ARCH_JUMP_LABEL if !XIP_KERNEL > select HAVE_ARCH_KGDB > select HAVE_ARCH_SECCOMP_FILTER Thanks, Sekhar ^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 2/2 v3] arm: Allow forced irq threading 2013-08-14 10:08 ` Sekhar Nori @ 2013-08-14 14:43 ` Sebastian Andrzej Siewior 0 siblings, 0 replies; 12+ messages in thread From: Sebastian Andrzej Siewior @ 2013-08-14 14:43 UTC (permalink / raw) To: linux-arm-kernel From: Thomas Gleixner <tglx@linutronix.de> All timer interrupts and the perf interrupt are marked NO_THREAD, so its safe to allow forced interrupt threading. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- arch/arm/Kconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 43594d5..6858b3a 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -52,6 +52,7 @@ config ARM select HAVE_REGS_AND_STACK_ACCESS_API select HAVE_SYSCALL_TRACEPOINTS select HAVE_UID16 + select IRQ_FORCED_THREADING select KTIME_SCALAR select PERF_USE_VMALLOC select RTC_LIB -- 1.8.4.rc1 ^ permalink raw reply related [flat|nested] 12+ messages in thread
end of thread, other threads:[~2013-08-14 14:43 UTC | newest] Thread overview: 12+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2013-02-14 20:53 [patch 0/2] ARM: Allow forced irq threading Thomas Gleixner 2013-02-14 20:53 ` [patch 1/2] arm: Mark pmu interupt IRQF_NO_THREAD Thomas Gleixner 2013-02-15 9:51 ` Will Deacon 2013-08-12 19:52 ` Sebastian Andrzej Siewior 2013-08-13 11:11 ` Will Deacon 2013-08-14 9:52 ` Sebastian Andrzej Siewior 2013-02-14 20:53 ` [patch 2/2] arm: Allow forced irq threading Thomas Gleixner 2013-02-14 21:49 ` Russell King - ARM Linux 2013-02-14 22:04 ` Thomas Gleixner 2013-08-12 20:03 ` [PATCH 2/2 v2] " Sebastian Andrzej Siewior 2013-08-14 10:08 ` Sekhar Nori 2013-08-14 14:43 ` [PATCH 2/2 v3] " Sebastian Andrzej Siewior
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).