RE: local_irq_save()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> On 4/23/07, Guennadi Liakhovetski <gl@xxxxxxxxx> wrote:
> > On Mon, 23 Apr 2007, pradeep singh wrote:
> >
> > > On 4/23/07, Guennadi Liakhovetski <gl@xxxxxxxxx> wrote:
> > > >
> > > > This cannot be true. Lost interrupts are bad, and you'd get them
all
> the
> > > > time, so, nothing would work.
> > > Right.That clears a lot of doubts.
> > > But all the interrupts in the mean time are taken care by the PIC
only
> > > AFAIK.Am i right? The moment CPU is ready to accept the interrupts
> > > again on the line, the inetrrupts are served.
> >
> > Yes, as long as these are different interrupts.
> Means the interrupt disabled using local_irq_save() if received in
> this period of time will be kind of buffered by the PIC only and only
> will be delivered to the CPU the moment interrupt is enabled
> again.Right? I am a little confused.Can you please help?

AFAIK When you disable using local_irq_save(), the PIC interrupt lines
going to the CPU will be copied to the flags variable and all interrupts
on that CPU will be disabled.

When you again use restore call, the flags variables which was earlier
saved in call to local_irq_save() will be restored.

> 
> What would happen if the same interrupt which was disabled using
> local_irq_save() is recieved again before local_irq_restore()?
> It will be buffered at the PIC only, right? Or is it that it will be
> served?Just like any interrupt on other lines?

Lets say you were trying to hold Interrupt 9, and even if you receive
any multiple interrupts before call to local_irq_restore(), the old
value saved at local_irq_save() call will only be restored. So, NO new
PIC vales will be reflected on the CPU after call to
local_irq_restore().

> Thank you
> ~psr
> 
> >
> > > Is my limited knowledge correct Guennadi?
> >
> > Very few people have unlimited knowledge...:-)
> >
> > Thanks
> > Guennadi
> > ---------------------------------
> > Guennadi Liakhovetski, Ph.D.
> > DSA Daten- und Systemtechnik GmbH
> > Pascalstr. 28
> > D-52076 Aachen
> > Germany
> >
> 
> 
> --
> play the game
> 
> --
> To unsubscribe from this list: send an email with
> "unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx
> Please read the FAQ at http://kernelnewbies.org/FAQ


--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx
Please read the FAQ at http://kernelnewbies.org/FAQ



[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux