Reputation: 23499
When kernel is handling an interrupt, what would it do if hardware raised another interrupt request, simple drop it ? Or would that behavior be harmful ?
Upvotes: 3
Views: 207
Reputation: 560
Be careful about kernels with all kinds of RT patches: the interrupts there are prioritized, so it is possible to have an interrupt inside of another interrupt. Actually, the spinlocks in this case are not spinlocks anymore, they are turned into kind of mutex; so it is possible to interrupt a low-priority interrupt with higher priority one.
See this presentation, for example.
Good luck.
Upvotes: 0
Reputation: 3497
The interrupt will stay there waiting unless it has a higher priority than the previous one, in which case it might pre-empt the previous one. Also if there are too many interrupts pending, the kernel will (atleast linux) revert to software queuing the interrupts.
Upvotes: 1
Reputation: 175
In the linux kernel 2.6+, it will add the interrupt request to a queue and the request will be in waiting state
Upvotes: 2