Thread (7 messages) 7 messages, 3 authors, 2012-02-26

About interrupt handler

From: Dave Hylands <hidden>
Date: 2012-02-26 17:53:06

Hi Kosta,

On Sun, Feb 26, 2012 at 4:11 AM, Kosta Zertsekel [off-list ref] wrote:
On Fri, Feb 24, 2012 at 11:18 PM, Dave Hylands [off-list ref] wrote:
quoted
HI Kosta,

On Fri, Feb 24, 2012 at 1:08 PM, Dave Hylands [off-list ref] wrote:
quoted
Hi Kosta,

On Fri, Feb 24, 2012 at 1:19 AM, Kosta Zertsekel [off-list ref] wrote:
quoted
quoted
quoted
I'm begin to learn the Kernel and i'm reading <<Linux kernel
development>>.It says "This is an important point, always keep in mind that
all interrupt handler has interrupted other code(possibly even another
interrupt handler on a different line)".What i am not able to understand is
how a interrupt handler be interrupted ? DID NOT it uninterrupted?
It depends on the architecture and the interrupt controller being
used, and the driver code itself.

Normally, when an interrupt fires, that particular interrupt will be
masked and your own handler won't interrupt itself, but you may very
well be interrupted by other interrupts.
Can you please point out some code for explanation?
Could you be a bit more specific about what example you're looking for?
I also believe that things have changed (since I looked at this in any
detail). It seems that interrupts are now run with other interrupts
disabled.
See: http://lwn.net/Articles/364583/ and look at the IRQF_DISABLED discussion.
Oh, yes, it seems it does as of kernel 3.3.0. But I fail to accept the
argument...
What happens for NAPI drivers stalling the kernel - *nobody* can
interrupt them...
Is there some reliable IRQ deep dive explanation - I need one just to
wrap my mind over the issue?
Well the kernel has the ability to use threaded irqs. This allows IRQs
to be given a proirity so you can allow one interrupt to interrupt
another or to even allow threads to interrupt interrupts.

http://lwn.net/Articles/302043/
http://www.artist-embedded.org/docs/Events/2009/OSPERT/OSPERT09-Henriques.pdf
http://elinux.org/images/e/ef/InterruptThreads-Slides_Anderson.pdf

-- 
Dave Hylands
Shuswap, BC, Canada
http://www.davehylands.com
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help