Re: About interrupt handler
On Fri, Feb 24, 2012 at 11:18 PM, Dave Hylands dhyla...@gmail.com wrote: HI Kosta, On Fri, Feb 24, 2012 at 1:08 PM, Dave Hylands dhyla...@gmail.com wrote: Hi Kosta, On Fri, Feb 24, 2012 at 1:19 AM, Kosta Zertsekel zertse...@gmail.com wrote: 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? Thanks, --- KostaZ ___ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
Re: About interrupt handler
Hi Kosta, On Sun, Feb 26, 2012 at 4:11 AM, Kosta Zertsekel zertse...@gmail.com wrote: On Fri, Feb 24, 2012 at 11:18 PM, Dave Hylands dhyla...@gmail.com wrote: HI Kosta, On Fri, Feb 24, 2012 at 1:08 PM, Dave Hylands dhyla...@gmail.com wrote: Hi Kosta, On Fri, Feb 24, 2012 at 1:19 AM, Kosta Zertsekel zertse...@gmail.com wrote: 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 ___ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
Re: About interrupt handler
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? --- KostaZ ___ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
Re: About interrupt handler
Hi Kosta, On Fri, Feb 24, 2012 at 1:19 AM, Kosta Zertsekel zertse...@gmail.com wrote: 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? -- Dave Hylands Shuswap, BC, Canada http://www.davehylands.com ___ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
Re: About interrupt handler
HI Kosta, On Fri, Feb 24, 2012 at 1:08 PM, Dave Hylands dhyla...@gmail.com wrote: Hi Kosta, On Fri, Feb 24, 2012 at 1:19 AM, Kosta Zertsekel zertse...@gmail.com wrote: 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. -- Dave Hylands Shuswap, BC, Canada http://www.davehylands.com ___ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
About interrupt handler
hi all, 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? -- best regards! cheneydeng___ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
Re: About interrupt handler
Original Message From: cheneydeng Sent: 2012年02月22日 星期三 23时38分37秒 To: kernelnewbies Subject: About interrupt handler hi all, 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 has more related to CPU architecture. Generally, while an interrupt handler is being executed, the handler itself can chose to disable or enable external interrupts (i.e, take x86 for example, IF bit for cflags reg controls this.). If IF is enabled, then the interrupt handler currently being executed may be interrupted and then jump to the entry for the coming interrupt. Thanks, -Zhengwang -- best regards! cheneydeng ___ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies ___ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
Re: About interrupt handler
Thanks to all of you~ -- best regards! cheneydeng -- Original -- From: Zhengwang Ruanruan.zhengw...@gmail.com; Date: Thu, Feb 23, 2012 06:07 PM To: kernelnewbieskernelnewbies@kernelnewbies.org; Subject: Re: About interrupt handler Original Message From: cheneydeng Sent: 2012年02月22日 星期三 23时38分37秒 To: kernelnewbies Subject: About interrupt handler hi all, 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 has more related to CPU architecture. Generally, while an interrupt handler is being executed, the handler itself can chose to disable or enable external interrupts (i.e, take x86 for example, IF bit for cflags reg controls this.). If IF is enabled, then the interrupt handler currently being executed may be interrupted and then jump to the entry for the coming interrupt. Thanks, -Zhengwang -- best regards! cheneydeng ___ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies___ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
About interrupt handler
hi all, 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? -- best regards! cheneydeng___ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
Re: About interrupt handler
Hi cheneydeng, 2012/2/22 cheneydeng cheneyd...@qq.com: hi all, 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. It is possible to arrange things so that your interrupt handler interrupts itself, although you need to be really careful when doing this as if your interrupt fires too quickly things can escalate out of control pretty quickly. -- Dave Hylands Shuswap, BC, Canada http://www.davehylands.com ___ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies