Re: interrupts

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

 



On Sat, 2009-02-07 at 23:58 +0700, Mulyadi Santosa wrote:
> Hi
> 
> On Sat, Feb 7, 2009 at 7:22 PM, Shyam Burkule <shyam.burkule@xxxxxxxxx> wrote:
> > Hi,
> > One question about Interrupt,
> >
> > I read in blog http://lkdp.blogspot.com/ that " When an interrupts are being
> > masked, they are not lost, rather PIC remembers those and do send the
> > interrupt to CPU when CPU unmasks that interrupt line."
> > But in book I read that "If the kernel allows itself too much time to
> > process an ISR when interrupts are disabled, it can (and will) happen that
> > interrupts are lost."
> >
> > My question is that when we mask the interrupt, do they lost or do they get
> > send to processor when they unmasked back??
> 
> Here's my understanding:
> 
> when the masked interrupt line being unmasked, interrupts are fired
> again. Thus, ISRs are called and then bottom halves.
> 
> If we spent too much time in ISRs, logically we prevent the CPU that
> runs the ISR to serve another interrupt, because when running an ISR
> automatically interrupt line is masked.
> 
> Furthermore, if this kind of situation happens again and again, you
> can imagine that "ripple effect" will happen sooner and later:
> interrupt is serviced later, another interrupt is deferred...probably
> two or three...then while serving the 2nd one, one more are
> pending..and so on.
> 
> regards,
> 
> Mulyadi.

My understanding says:

Given we are talking about same priority interrupts, when you are
processing an interrupt and another occurs, PIC would "latch" it. And in
the meantime if one more occurs, the latest would be lost. 

I am saying this from my observation on AT91RM9200 processor, I might be
wrong though.

                Himanshu




--
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