Hi, Are you sure about that Edge-triggered interrupts are gone and that most hardware doesn't use edge triggers ? For example, on my x86_64, I get 9 edge interrupts: 0: 127 0 IO-APIC-edge timer 1: 3 0 IO-APIC-edge i8042 4: 1 1 IO-APIC-edge 8: 0 1 IO-APIC-edge rtc0 12: 1 3 IO-APIC-edge i8042 14: 0 0 IO-APIC-edge ata_piix 15: 0 0 IO-APIC-edge ata_piix 43: 30897 7 PCI-MSI-edge em1 44: 306 308 PCI-MSI-edge snd_hda_intel Also I remember I saw in a book about Kernel that edge interrupts are more common than level interrupts. rgs Kevin On Thu, Mar 7, 2013 at 6:53 PM, <Valdis.Kletnieks@xxxxxx> wrote: > On Thu, 07 Mar 2013 17:17:19 +0200, Kevin Wilson said: > >> Does this mean that once you are disabling >> interrupts, these interrupts are lost ? even later, when we will >> enable interrupts, the interrupts from the past that should have been >> created (but interrupts were disabled at that time interval) are in >> fact lost? > > Level-triggered interruots will go off once interrupts are re-enabled, > assuming that the device has kept the level set and not given up and timed > out. > > Edge-trittered interrupts are gone. That's part of why most hardware > doesn't use edge triggers - it's just too hard to guarantee proper device > driver operation. > > 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". > > The difference is that sometimes the CPU is doing stuff that it would be > potentially screwed if *any* interrupt happened, so we disable them. Other > times we're busy inside a device driver, and we're in a critical section > for that device - but it's safe for other devices to interrupt. So to improve > latency we mask off just the one interrupt not all of them. _______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies