Re: Interrupts - Loss of Edge triggered interrupts



This may depend on the hardware you use, but the interrupt hardware unusually does not have a FIFO to store multiple interrupts.

When using shared interrupts, multiple hardware interrupt sources are routed to a single interrupt pin of the CPU or near-CPU interrupt controller.

AFAIK, this is not related to weather the pin the (external) hardware is connected to is programmed to detect a permanent level change (that needs do be reset by serving the external hardware by the software) or a pulse (that does not need a service to go on doing it's task and perhaps create another pulse).

So the difference between level triggering and edge triggering is that with level triggering in fact an interrupt will not be lost undetected, but instead the hardware will fail to do it's next task if the CPU is not able to service an interrupt fast enough.

In both cases the CPU failing to service the interrupt fast enough will result in loosing a hardware event, unless the event itself can be delayed by the hardware (if level triggering is used and the hardware is done in the appropriate way).

-Michael
.



Relevant Pages

  • Re: Polling loop good here???
    ... The "vertical retrace interrupt" was IRQ 2... ... In today's hardware - as has been mentioned - they've almost certainly ... it...make use of the drivers... ...
    (alt.lang.asm)
  • RE: Polling For 100 mbps Connections? (Was Re: Freebsd Theme Song)
    ... >> polling is less ... It depends on the hardware. ... >has built-in hardware interrupt throttling (such ...
    (freebsd-questions)
  • Re: linux-next: Tree for June 13: IO APIC breakage on HP nx6325
    ... If your patch is applied in its present form, all of the boxes from HP ... The workaround makes the system use the mixed interrupt mode (well, ... but it does not make your piece of hardware less broken. ... If we stopped using parts of some spec, ...
    (Linux-Kernel)
  • Re: Polling for ath driver
    ... but we've found polling to be extremely valuable on low-end hardware as described here. ... We use it only on fxp drivers, but it moved throughput on 133Mhz hardware from something around 8Mbps to 20Mbps on regular layer-3 packet forwarding and also bumped VPN performance up significantly when used with hardware VPN accelerators. ... Unless you've significantly restructured the interrupt handling in the ... Adding polling to this driver does increase performance on embedded ...
    (freebsd-net)
  • Re: How to debug inside the BIOS and/or interrupt?
    ... I'm not sure I can help with your specific code problem but if the program works when you read only one chunk of data at a time from disk, but locks up after a while if you read multiple chunks, then probably one of two things is happening -- some memory is being corrupted or an interrupt is taking too long somewhere. ... one nice way to debug interrupt problems on such hardware is to modify your interrupt routine so that it toggles a pin that you can look at with a 'scope. ... That's usually not wise to attempt within an interrupt but you can simulate such a thing by doing something like writing to a fixed, preallocated error log in memory, or to a hardware register. ... Again you might find the printer port convenient for this, or if you have at least an EGA compatible display on your hardware, you can do things like change the background color of the screen by writing to the overcan register. ...
    (comp.lang.asm.x86)