Messages in this thread | | | Subject | Re: Kernel stack.... | From | "Richard J Moore" <> | Date | Tue, 11 Sep 2001 16:53:49 +0100 |
| |
If you have an interrupt stack, and that's not strictly necessary in OS design, then you either need one per processor or to handle interrupts on only one processor. If you use the task time kernel stack, which under IA32 you will do as soon as the CPU processes the interrupt gate for that IRQ, then the interrupt stack frame wil appear on the task time stack. Things in theory can continue this was. Eventually the stack will unwind with the interrupt frame being finally removed with an IRET. No it is possible to switch to a separate stack but that has to be engineered by the system interrupt handler. I don't recall whether Linux does this. If it does you'll see it happening in the /arch code for interrupt handling.
Richard Moore - RAS Project Lead - Linux Technology Centre (ATS-PIC). http://oss.software.ibm.com/developerworks/opensource/linux Office: (+44) (0)1962-817072, Mobile: (+44) (0)7768-298183 IBM UK Ltd, MP135 Galileo Centre, Hursley Park, Winchester, SO21 2JN, UK
Emmanuel Varagnat <Emmanuel_Varagnat-AEV010@emai To: Richard J Moore/UK/IBM@IBMGB l.mot.com> cc: Subject: Re: Kernel stack.... 11/09/2001 16:26 Please respond to Emmanuel Varagnat-AEV010
Richard J Moore wrote: > > Emmanuel Varagnat wrote: > > >Yes but there is one stack per processor ? > > One per process.
Yes I know, but inside the kernel when an IRQ is handled the kernel use its own stack. But if there is many processors many IRQ handler are supposed "turn". And if they share the same stack, data are melted.
Thanks for your answer.
-Manu
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |