Fw: Question about interrupts
Well 2.6.39 seems to have changed and the flow as I understand for interrupt processing is do_IRQ -> irq_enter -> handle_irq -> ... but in above flow i cant find local_irq_enable anywhere; is there some different trick used to enable the interrupts ? ----- Forwarded Message ---- From: santhosh kumars <karuna.linux@gmail.com> To: manish honap <manish_honap_vit@yahoo.co.in> Cc: kernelnewbies@kernelnewbies.org Sent: Fri, 29 July, 2011 3:31:10 PM Subject: Re: Question about interrupts On Fri, Jul 29, 2011 at 3:16 PM, manish honap <manish_honap_vit@yahoo.co.in> wrote:
Hello all,
When interrupts are handled through interrupt gate cpu automatically clears IF flag.
but to allow nesting kernel sets the IF flag in handle_irq_event - for 2.6.11
but in 2.6.39 how the interrupts are re-enabled so as to facilitate nesting of interrupts I am unable to find local_irq_enable in do_IRQ() I think in handle_IRQ_event event again interrupts are enabled if (!(action->flags & IRQF_DISABLED)) local_irq_enable_in_hardirq();
Thanks in advance.
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
On Fri, Jul 29, 2011 at 3:56 PM, manish honap <manish_honap_vit@yahoo.co.in> wrote:
Well 2.6.39 seems to have changed and the flow as I understand for interrupt processing is do_IRQ -> irq_enter -> handle_irq -> ...
but in above flow i cant find local_irq_enable anywhere; is there some different trick used to enable the interrupts ? yes in 2.6.34 i am able to find do_IRQ and handle_IRQ_event(), defined in kernel/irq/handler.c but with 2.6.39 its moved some where .Can any one please help me on this where this logic is moved.
----- Forwarded Message ---- From: santhosh kumars <karuna.linux@gmail.com> To: manish honap <manish_honap_vit@yahoo.co.in> Cc: kernelnewbies@kernelnewbies.org Sent: Fri, 29 July, 2011 3:31:10 PM Subject: Re: Question about interrupts
On Fri, Jul 29, 2011 at 3:16 PM, manish honap <manish_honap_vit@yahoo.co.in> wrote:
Hello all,
When interrupts are handled through interrupt gate cpu automatically clears IF flag.
but to allow nesting kernel sets the IF flag in handle_irq_event - for 2.6.11
but in 2.6.39 how the interrupts are re-enabled so as to facilitate nesting of interrupts I am unable to find local_irq_enable in do_IRQ() I think in handle_IRQ_event event again interrupts are enabled if (!(action->flags & IRQF_DISABLED)) local_irq_enable_in_hardirq();
Thanks in advance.
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
Hi, On Sat, Jul 30, 2011 at 3:52 AM, santhosh kumars <karuna.linux@gmail.com> wrote:
On Fri, Jul 29, 2011 at 3:56 PM, manish honap <manish_honap_vit@yahoo.co.in> wrote:
Well 2.6.39 seems to have changed and the flow as I understand for interrupt processing is do_IRQ -> irq_enter -> handle_irq -> ...
but in above flow i cant find local_irq_enable anywhere; is there some different trick used to enable the interrupts ? yes in 2.6.34 i am able to find do_IRQ and handle_IRQ_event(), defined in kernel/irq/handler.c but with 2.6.39 its moved some where .Can any one please help me on this where this logic is moved.
You can use LXR to search for stuff (it's a fully cross referenced index into the kernel code): http://lxr.linux.no/linux
From this, I searched for do_IRQ against kernel version 2.6.39 and it appears to have been made architecture specific rather than being generic.
Some architectures, like ARM, have an asm_do_IRQ rather than do_IRQ. -- Dave Hylands Shuswap, BC, Canada http://www.davehylands.com
participants (3)
-
Dave Hylands -
manish honap -
santhosh kumars