On Fri, 2004-12-10 at 14:22, Andre Tousch wrote: > Hi, > thanks for your reply.
I hope you don't mind when we continue this on the mailing list, other people might also be interested in it or have something to say on these matters. > [...] > > >Maybe I'm overlooking something, but why don't you unstall the pipeline > >in your interrupt handler? > > Adeos stalls the domain before calling its interrupt handler, and > unstalls the domain after the handler returns. > This prevents reentrance on the interrupt handler. > If I unstall the pipeline, I make the handler reentrant, while Adeos > assumes it is not. As far as I know, Adeos does not make such an assumption. Take for instance the Linux timer interrupt. It has SA_INTERRUPT set, therefore arch/arm/kernel/irq.c:__do_irq() enables interrupts with local_irq_enable() before calling the real handler. With Adeos this translates to a pipe unstall inside an irq-handler. This allows *other* interrupts to occur while the timer irq handler is running. Another timer interrupt can't happen while the old one is handled: the timer-irq will be unmasked *after* the handler has finished (see arch/arm/kernel/irq.c:do_IRQ()). Mike -- Dr. Michael Neuhauser phone: +43 1 789 08 49 - 30 Firmix Software GmbH fax: +43 1 789 08 49 - 55 Vienna/Austria/Europe email: [EMAIL PROTECTED] Embedded Linux Development and Services http://www.firmix.at/
