Interrupt handling

Bruce Rowen browen at aoc.nrao.edu
Wed Feb 16 09:50:47 EST 2011


When the interrupt line is asserted by the hardware device (could be  
a  peripheral, whatever) the interrupt controller decides how to pass  
this signal onto the processor. Some controllers will prioritize the  
interrupt based on the interrupt line number. For example, assume line  
#3 has interrupted. If line #4 then interrupts and #4 has higher  
priority, the service routine for interrupt line #3 will itself be  
interrupted. If a lower priority interrupt (say #2) occurs, then #3  
will continue until completion at which point #2 will be serviced.
Note that this hardware prioritization is highly dependent on hardware  
and hardware setup. It could be such that an incoming interrupt with a  
lower priority than a currently servicing interrupt is simply ignored.

Mulyadi is correct in that once this hardware interrupt has been  
acknowledged at the controller and the (usually very short) interrupt  
service routine has been run, the prioritization of the rest of the  
interrupt handler is left to the Kernel. Typically in most systems the  
NMI has the highest priority and of course given its name, can never  
be ignored (masked).

-Bruce

On Feb 16, 2011, at 1:54 AM, Mulyadi Santosa wrote:

> Hi :)
>
> On Tue, Feb 15, 2011 at 19:20, Darshan Ghumare
> <darshan.ghumare at gmail.com> wrote:
>> IMHO, When the Processor is executing interrupt handler of IRQ4 then
>> Processor is the one which pushes SS, SP, EFLAGS, CS  & EIP  on  
>> stack (in
>> this case this will all corresponds to interrupt handler of IRQ4) &  
>> loads CS
>> & EIP corresponding to IRQ5.
>> So, how come its depends on OS (kernel)? Please correct me if I am  
>> wrong.
>
> OK, to make it clear, I was talking about bottom half prioritizing
> .... the upper half is reacting whenever interrupt is coming (and it
> is not currently masked/disabled) AFAIK. Bottom half is the part where
> OS could do prioritizing if it indeed does so.
>
> The only "prioritizing" (if you take it as prioritizing) in interrupt
> is when it is fall into NMI (Non Maskable Interrupt). AFAIK, they
> could just kick others in queue, just like real time task kick regular
> process :) Uhm, maybe watchdog timer does same kind of interrupt
> too...
>
> Guys, CMIIW here...
>
> -- 
> regards,
>
> Mulyadi Santosa
> Freelance Linux trainer and consultant
>
> blog: the-hydra.blogspot.com
> training: mulyaditraining.blogspot.com
>
> _______________________________________________
> Kernelnewbies mailing list
> Kernelnewbies at kernelnewbies.org
> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies




More information about the Kernelnewbies mailing list