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