Yes, indeed. I now look at the subject and see from that that maybe
linus was talking about edge-triggered (I can't see the subject line
when replying to mail) though I got the impression that he was talking
about level triggered from the message body. I don't know why ... I'll
go back and try and find the message (we just had a 24hr power cut here
so my mail is stacked high somewhere out there).
Edge triggered interrupts obviously suffer from the defect that if the
interrupt latch is set, then in that state it physically can't see a new
edge that comes in, so the kernel has no chance to see it either. The
kernels only chance is to work reeeal fast to service the previous
interrupt and reset the latch back to a seeing state again.
Level triggered interrupts also suffer from a physical limitation
however: they can't tell you if TWO events on the same interface
happened before the kernel reset the latch. Only that for sure at least
one event happened. That would be fixed by having a counter instead of a
simple latch. Dunno why not.
When it comes to shared interrupts, I really would need to know if there
is a latch on the peripheral's side of the interface, as well as on the
motherboard side, before saying anything ,.. it sounds to me as though
there is. In that case, yes level-triggered interrupts are safe to
share in that they guarrantee to notify you if at least one event has
happened on any device. Without the latch on the peripheral's side,
that is not so. Double events in which the second does not persist
beyond the ack from the kernel may not be perceived as two. In other
words, "it depends".
> These are reliably shareable AFAIK. The problem is with sharing
> edge-triggered interrupts.
Indeed. Apologies for somehow misreading. This post is to make sure
the right info gets in the archives.
> --
> Meelis Roos (mroos@tartu.cyber.ee)
>
Peter
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.altern.org/andrebalsa/doc/lkml-faq.html