Hello Zach,
On Tue, 14 Mar 2006, Zachary Amsden wrote:
It could be possible to change the semantics of the interrupt masking
interface in Linux, such that enable_interrupts() did just that - but did not
yet deliver pending IRQs. As did restore_interrupt_mask(). This would
require inspection of many drivers to ensure that they don't rely on those
actions causing immediate interrupt delivery. And if they did, they would
require a call, say, deliver_pending_irqs() to accomplish that.
I think we can break these down into low level and higher level interrupt enabling. Lower level tends to be call sites like exception entry, in that particular case drivers aren't aware of the interrupt enable/disable semantics so it's safe to enable without dispatch. Higher up is where dispatch makes sense and we can closer mimick hardware.