daisy
daisy

Reputation: 23499

What would kernel do when another hardware interrupt got up, while handling an interrupt

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

Answers (3)

Sebastian Mountaniol
Sebastian Mountaniol

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

Markus Mikkolainen
Markus Mikkolainen

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

ebin
ebin

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

Related Questions