On 5/4/07, Rajat Jain <rajat.noida.india@xxxxxxxxx> wrote:
> Hi,
>
> > > The interrupts are disabled at the interrupt controller while kernel
> > > is handling an IRQ. So any new interrupt generated before the kernel
> > > handles the old interrupt will be lost.
> > >
> > I'm a little confused with your comment above. "INT lost while kernel
> > processing the last INT".
> > I would think it won't be lost, maybe more like delayed in processing.
> > Doesn't the interrupt controller send the INT when the kernel re-enables the
> > INT again.
> > With what u are suggesting we would lose INT a lot.
>
> Here is an extract from the LDD3 sec 10.7:
>
> "void disable_irq(int irq);
> void disable_irq_nosync(int irq);
> void enable_irq(int irq);
>
> A driver can enable and disable interrupt reporting. If the hardware
> tries to generate an interrupt while interrupts are disabled, the
> interrupt is lost forever. A driver using a shared handler must not
> use these functions."
>
> These are the functions that disable / enable irq at the PIC level.
So do you mean, no interrupts are kind of buffered in the Local APIC
while the APIC is waiting for EOI?