Thread (4 messages) 4 messages, 3 authors, 2011-06-07

Threaded Irqs (was "Changing Kernel thread priorities")

From: Tim Sander <hidden>
Date: 2011-06-07 21:35:43
Also in: lkml
Subsystem: arm port, the rest · Maintainers: Russell King, Linus Torvalds

Hi Thomas and all preempt RT interested
Use threaded interrupt handlers. That's what they are made for.
I just started using threaded interrupt handlers in 2.6.39 for an
arm system (pcm043 - arm1136jfs). The results where not so good as
i expected. I set the rt prio of the interrupt to 99 (the scheduling 
type made difference since it was the only interrupt at this level). 
The user io driver for this where set to 98. I hadn't instrumented 
the irqthread but the latencies where to high for our buffer which 
can hold data for about 400µs. After configuring the IRQ as 
non-threaded, but still using threaded irqs the latencies where fast
enough for the mentioned buffer size.

Nevertheless are there still scheduling latencies for the usermode
handler thread which then runs at rt prio 99 for about 1ms. I know
this is not an preempt-rt kernel but i hoped to get better values out
of this configuration. 

So if anybody has an idea how to get better latencies out of a 2.6.39
kernel, please let me know.

I triead SLAB and SLOB allocator and they didn't made any difference for me.

Best regards
Tim

PS: i patched the kernel to get threadedirqs with:
diff --git a/arch/arm/mach-mx3/Kconfig b/arch/arm/mach-mx3/Kconfig
index 4e05237..28ae32c 100644
--- a/arch/arm/mach-mx3/Kconfig
+++ b/arch/arm/mach-mx3/Kconfig
@@ -162,6 +162,7 @@ config MACH_PCM043
        select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX
        select IMX_HAVE_PLATFORM_SPI_IMX
        select MXC_ULPI if USB_ULPI
+       select IRQ_FORCED_THREADING
        help
          Include support for Phytec pcm043 platform. This includes
          specific configurations for the board and its peripherals.

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help