Disabling interrupts and masking interrupts

Valdis.Kletnieks at vt.edu Valdis.Kletnieks at vt.edu
Thu Mar 7 12:40:14 EST 2013


On Thu, 07 Mar 2013 09:28:58 -0800, Dave Hylands said:

> In my experience, edges triggered interrupts are always latched by the HW
> when they arrive. If another edge comes along between the initial edge and
> the time that the interrupt is cleared, then this second edge is lost. The
> fact that an interrupt is pending will still be retained though, and as
> soon as interrupts are enabled, then the interrupt handler will fire.

Actually, what you're describing there is hardware that converts edge
triggered to level triggered precisely because edge triggered stuff
sucks otherwise. ;)

> > Also, in common usage, "disabled interrupts" means that you're not
> > listening
> > to *any* interrupts, while "masked" means "we're not listening to *this*
> > interrupt source, even if we *are* accepting interrupts from other
> > sources".

> Normally disabling interrupts is just another form of masking, it just
> happens to mask all of the interrupts rather than one particular one. Even
> when you disable interrupts, you typically still have access to the
> unmasked interrupt state.

Yes, but it;'s still useful to distinguish between the two cases.  Also,
on many hardware architectures, the actual code to 'disable all' and 'disable
one' is very different (on X86, 'cli' does "all" very fast, ignoring exactly
one takes some more doing)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 865 bytes
Desc: not available
Url : http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20130307/bacdc547/attachment.bin 


More information about the Kernelnewbies mailing list